C++ · MEMORY

new/delete 생명주기와 실패 패턴

수동 메모리 관리는 할당, 소유, 해제 시점이 코드에 흩어지기 쉬워 누수와 댕글링 포인터가 생길 수 있습니다.

핵심 구조

manual lifetime
newheap 객체 생성과 주소 반환
owner pointer누가 delete할지 불명확해질 수 있음
delete객체 수명 종료와 메모리 반환
dangling남은 포인터가 해제된 주소를 가리킴
newowner pointerdeletedangling

판단 기준

check
leakdelete 경로가 빠지면 프로세스가 메모리를 계속 붙잡습니다.
double delete같은 주소를 두 번 해제하면 힙 상태가 망가질 수 있습니다.
use after free해제된 객체에 접근하면 재현 어려운 오류가 납니다.
RAII 전환unique_ptr, vector, string으로 수명을 객체에 묶습니다.