태그: 메모리
5편
-
C++ 클래스·링크·메모리 문제를 증상으로 찾는 표: Rule of Five, EBCO, 다이아몬드, 이름 맹글링, use-after-free
복사 때 이중 해제, 객체 크기가 예상보다 큼, 기본 클래스가 두 번 생성됨, 링크 에러의 _Z 심볼, 해제 후 사용 같은 증상을 실행 결과로 보여 주고 원인과 자세한 글을 연결합니다.
-
C++ static 함수 정리: 클래스 static 멤버, 파일 스코프 static, 내부 링키지와 ODR
함수에 붙는 static은 클래스 static 멤버 함수와 파일 스코프 static 함수라는 전혀 다른 두 뜻을 가집니다. this가 없는 멤버 함수, 내부 링키지와 익명 네임스페이스 비교, 헤더의 static 정의가 ODR과 코드 크기에 주는 영향을 예제로 봅니다.
-
C++ 스택 오버플로우 크래시: 깊은 재귀·큰 지역 배열 진단과 스택 크기 조정
깊은 재귀나 큰 지역 배열 때문에 세그폴트로 죽는 스택 오버플로우를 진단하고, 재귀를 반복문이나 명시적 스택으로 바꾸거나 데이터를 힙으로 옮기는 방법, ulimit과 링커 옵션으로 스택 크기를 조정하는 법까지 다룹니다.
-
C++ vector reserve vs resize: capacity와 size의 차이와 쓰임
vector의 reserve는 capacity만 늘리고 size는 그대로 두지만, resize는 요소를 실제로 만들고 초기화해 size를 바꿉니다. 이 차이 때문에 reserve 뒤 인덱스로 접근하거나 resize 뒤 push_back을 하면 생기는 버그와 재할당 횟수 차이를 예제로 보여 줍니다.
-
C++ 커스텀 Allocator: 메모리 풀·스택·추적 할당자와 PMR
C++ STL Allocator 인터페이스로 메모리 할당을 커스터마이징하는 방법을 메모리 풀, 스택, 추적 할당자 예제와 PMR(polymorphic_allocator)로 정리합니다. 할당자 비교, 전파 정책, 정렬 함정까지 다룹니다.