[C++] Malloc / Free & New / Delete

2024. 4. 17. 22:53언어 및 엔진/C++

Malloc / Free 와 New / Delete의 차이

Malloc / Free : 라이브러리가 제공하는 함수
정적 메모리 할당은 정해진 크기를 받은 후 돌려주는 방식 - 미리 크기를 정해놓아야 함
Malloc/Free는 동적 메모리 할당.
할당 대상의 정보를 바이트 단위로 전달해야 함
형 변환 필요(반환형이 void임)
메모리 누수를 방지하기 위해 반드시 free함수를 사용하도록 한다
모든 공간을 0으로 자동 초기화
생성자 없음
realloc으로 재할당 가능

New / Delete : 언어가 제공하는 연산자. 생성 / 소멸자 호출
new : malloc을 대신 함
delete : free를 대신 함
C++에서 객체의 생성에는 반드시 new delete를 사용해야 함
new: 힙에 할당된 변수를 포인터를 사용하지 않고도 접근 가능
오버로딩 가능
타입을 지정해야 하고, 할당한 타입의 포인터를 리턴함
생성자 자동 호출 -> 초기화 편리
delete는 소멸자를 호출함

'언어 및 엔진 > C++' 카테고리의 다른 글

[C++] Pointer  (0) 2024.04.17
[C++] Call by value / Call by reference  (0) 2024.04.17
[C++] Struct / Class  (0) 2024.04.17
[C++] 디자인 패턴  (0) 2024.04.17
[C++] 인스턴스 화  (0) 2024.04.17