수동 수명 관리

new와 delete 수명

동적 메모리는 할당 성공, 사용, 해제, 포인터 정리, 실패 처리를 하나의 흐름으로 묶어야 누수를 줄일 수 있습니다.

new/delete new[]/delete[] nullptr reset
초기화

처음에는 nullptr

아직 할당 전인 포인터를 명확히 표시하면 잘못된 역참조를 줄일 수 있습니다.

배열 짝을 맞춘다

new[]로 얻은 메모리는 delete[]로 해제해야 소멸자와 해제 범위가 맞습니다.

해제 짝

포인터 해제 후 초기화

delete 이후 포인터를 nullptr로 바꾸면 댕글링 포인터 사용을 빨리 드러낼 수 있습니다.

01 · 준비 nullptr로 시작합니다.
02 · 할당 new 결과를 받습니다.
03 · 사용 범위를 짧게 유지합니다.
04 · 해제 delete 후 비웁니다.
현대 C++

가능하다면 수동 new/delete보다 unique_ptr, vector 같은 RAII 객체가 예외 상황에서도 해제를 자동화합니다.