malloc 과 new
malloc과 new는 C++에서 동적할당을 위해 사용된다. 다만 C++에서 runtime error를 방지하기 위해 malloc을 권장하지는 않는다.
1 | class Record { |
malloc
malloc은 동적할당을 위해 사용하는 함수이다. 초기화는 하지 않는다. malloc으로 할당한 메모리는 free로 해제를 수행한다.
new
new는 동적할당을 위해 사용하는 키워드이다. 힙에 메모리를 할당해주며 생성자를 호출하고 타입 변환도 수행한다. new로 생성한 메모리는 delete로 해제를 해주어야 한다.
생성자 할당 방법
생성자를 할당하는 방법은 멤버 이니셜라이저와 함수 body로 할당하는 두가지 방법이 있다. 멤버 이니셜라이저는 가독성 향상과 생성과 동시에 할당이라는 성능상 약간의 이점이 있다. 함수 body로 할당하는 방법은 참조 인스턴스들의 복사를 위해 사용한다.