C++ 스마트 포인터 완벽 분석: 원리, 구현 및 실제 사용 시 주의점
C++에서 메모리 누수는 오랫동안 개발자를 괴롭혀 온 핵심 문제입니다. 특히 예외 상황에서 수동으로 관리하는 동적 메모리는 해제 로직이 실행되지 않아 누수가 발생하기 쉽습니다. 스마트 포인터는 RAII(Resource Acquisition Is Initialization) 사상을 대표적으로 구현한 것으로, 객체의 생명주기를 통해 자원을 자동으로 관리하여 이 문제를 완전히 해결합니다. 이 ...
9월 12일 18:18에 게시됨
C++에서 동적 메모리 관리: 포인터와 삭제의 올바른 사용
포인터가 항상 delete를 필요로 하는 것은 아니다. 메모리 해제 여부는 해당 포인터가 가리키는 데이터의 생성 위치와 수명 주기에 따라 결정된다.
힙(동적 메모리)에서 new 또는 new[]로 할당된 메모리는 반드시 delete 또는 delete[]로 수동으로 해제해야 하며, 그렇지 않으면 메모리 누수가 발생한다. 반면 스택, 정적 영역, 글로벌 영역 등에서 생성된 메모리는 시스템 ...
7월 31일 15:21에 게시됨
C++ 메모리 관리의 진화: calloc에서 스마트 포인터까지
1장: C 스타일 메모리 관리에서 현대 C++로의 전환
C++은 시스템 프로그래밍의 안정성과 효율성, 추상화 능력을 지속적으로 개선하는 과정에서 발전해 왔습니다. 초기 C++은 C 언어의 malloc/free를 기반으로 동적 메모리 할당을 수행했으나, 이는 메모리 누수, 중복 해제, 떠 있는 포인터 등 다양한 문제를 유발했습니다.
전통적인 C 스타일 메모리 관리의 문제점
- 개 ...
6월 24일 01:24에 게시됨