✅ Raw Pointer의 문제점
메모리 누수(Memory Leak) 위험
→ delete를 깜빡하면 메모리가 계속 쌓여서 프로그램이 점점 무거워짐.
Dangling Pointer(댕글링 포인터) 문제
→ 이미 해제된 메모리를 가리키는 포인터가 남아 있을 수 있음.
예외 발생 시 안전하지 않음
→ delete를 실행하기 전에 예외가 발생하면 메모리가 해제되지 않음.
✅ Raw Pointer를 대신하는 대안 (스마트 포인터)
이런 문제를 해결하기 위해 C++에서는 스마트 포인터(Smart Pointer)를 사용해.
스마트 포인터는 자동으로 메모리를 관리해서 delete를 직접 호출할 필요가 없어!
스마트 포인터 설명 예제
std::unique_ptr 한 개의 포인터만 객체를 소유 (단일 소유권)
std::unique_ptr Ptr = std::make_unique(10);
std::shared_ptr 여러 개의 포인터가 같은 객체를 공유
std::shared_ptr Ptr = std::make_shared(10);
std::weak_ptr shared_ptr와 함께 사용, 참조 카운트 증가 없이 객체 접근 가능 std::weak_ptr WeakPtr = SharedPtr;
✅ 결론
✔ Raw 포인터(원시 포인터) = 그냥 일반적인 * 포인터!
✔ 메모리 관리가 필요하다면 스마트 포인터(std::shared_ptr, TSharedPtr 등)를 사용하자! 🚀