C++ · DYNAMIC MEMORY
new와 delete 짝 맞추기
동적 메모리는 할당 방식과 해제 방식의 짝이 맞아야 합니다. 단일 객체와 배열을 혼동하면 누수나 정의되지 않은 동작으로 이어질 수 있습니다.
할당과 해제 매칭
manual
new T
단일 객체를 힙에 생성합니다.
delete p
단일 객체는 delete로 해제합니다.
new T[n]
배열을 힙에 생성합니다.
delete[] p
배열은 delete[]로 해제해야 합니다.
nullptr
해제 후 포인터를 빈 상태로 바꿉니다.
할당
→
사용
→
맞는 해제
→
nullptr
실수 유형
risk
메모리 누수
해제를 잊으면 사용하지 않는 메모리가 남습니다.
댕글링 포인터
해제된 주소를 다시 역참조하면 위험합니다.
이중 해제
같은 포인터를 두 번 delete하면 오류가 납니다.
짝 불일치
new[]를 delete로 해제하면 문제가 생길 수 있습니다.