메모리 동적 할당 방법

  • C언어 :  malloc(), calloc() 함수를 이용
  • Cpp : new 연산자 이용

메모리 동적 해제 방법

  • C언어 :  free() 함수를 이용
  • Cpp : delete 연산자 이용

new 연산자 사용 예

  • type *포인터이름 = new type;
    • 예를 들면 ) int* num = new int;

malloc()과 new의 차이점

  • malloc()은 함수 new는 연산자
  • malloc() 시스템함수로써 함수안에서 메모리 할당
  • new는 연산자로 바로 메모리를 할당하는 것이 아니라 생성자를 호출해서 메모리 할당
    • 생성자를 통해 호출하므로 new로 메모리 할당하여 생성시 초기화 가능
  • malloc()은 realloc을 통한 재할당 가능, new는 재할당불가
  • malloc() 리턴값 void* 때문에 malloc함수 사용시 자료형을 앞에 선언해줘야함.
  • new는 type-safe(컴파일러가 타입을 확인해줌)로 해당객체에 맞는 포인터 반환
  • new를 통해 객체 생성시 에러발생하면 예외처리
    • malloc()은 예외처리 없이 NULL반환

 

복사했습니다!