이번에는 C++ 스마트포인터에 대해 정리하겠다. ① 개요 1) 정의 → C++에서 동적 메모리를 안전하게 관리하기 위해 제공하는 포인터 래퍼(wrapper) 클래스 → 기존의 원시 포인터(raw pointer, T*)는 동적으로 할당된 메모리를 수동으로 해제 → 자동으로 메모리를 관리하여 메모리 누수를 방지 가능 2) 필요한 이유 메모리 누수(Memory Leak) → new로 할당한 메모리를 delete로 해제하지 않으면 누적되며, 프로그램이 종료될 때까지 반환되지 않음 예외 안전성(Exception Safety) 문제 → 동적 메모리를 할당한 후 예외가 발생하면 delete가 호출되지 않을 수 있음 중복 해제(Double Free) 문제 → 같은 포인터를 여러 번 delete하면 정의되지 않은 동작(UB, Undefined Behavior)이 발생 가능 댕글링 포인터(Dangling Pointer) → delete 후에도 해당 포인터를 사용하면 메모리 접근 오류가 발생 가...
원문 링크 : C++ 스마트포인터