
Programming/C++ & Unreal
C++ 스마트 포인터 메모리는 shared_ptr가 없어져도 해제되지 않는다.
개요C++ 스마트 포인터 shared_ptr의 참조 카운트가 0이 되어도 weak_ptr이 참조하고 있다면 메모리를 해제하지 않고 소멸자만 부른다. 스마트 포인터 간단 요약 스마트 포인터의 기본 원리는make_shared시에, control block(스마트 포인터 관리용 오브젝트)와 object(실제 사용하는 오브젝트)가 생성된다.이후 shared_ptr이 참조할 때마다 use_count가 늘어나고,weak_ptr이 참조할 때 마다 weak_count가 늘어난다.use_count가 0이 되면 object의 소멸자가 호출되고,모든 count가 0이 되면 control block과 object의 메모리가 해제된다. 메모리 해제 시점상식적으로 use_count가 0이 될 때, object의 메모리를 해제해야..