weak_ptr와 lock으로 순환 참조 해결하기

순환 참조의 본질shared_ptr는 C++에서 메모리 관리를 자동화하는 강력한 도구이지만, 서로를 가리키는 구조에서는 치명적인 약점을 드러낸다. 두 객체가 서로를 shared_ptr로 참조하면 참조 카운트가 영원히 0에 도달하지 못해 메모리 누수가 발생한다. 이를 해결하려면 weak_ptr을 활용해 소유권과 참조를 분리해야 한다.weak_ptr의 설계 의도weak_ptr은 객체의 생 여부 ...

6월 11일 22:00에 게시됨

C++ 스마트 포인터의 원리와 활용

스마트 포인터가 필요한 이유 C++에서 동적 메모리를 직접 관리하다 보면 예외 발생 시 delete를 놓쳐 메모리 누수가 생길 수 있습니다. 특히 복잡한 제어 흐름이나 예외 처리 과정에서는 자원 해제를 보장하기 어렵습니다. 이를 해결하기 위해 '자원 획득은 초기화다(Resource Acquisition Is Initialization, RAII)'라는 개념을 기반으로 한 스마트 포인터가 등장했습니 ...

5월 23일 08:32에 게시됨