Dangling Pointer (feat. Memory Map)
·
C/C
1. 정의 메모리에서 해제 된 공간(ex. free(ptr))을 가리키는 포인터 (허상 포인터) 2. 발생 원인 free를 통해 메모리를 해제했지만 해당 포인터변수가 해제된 메모리 주소를 가지고 있는 경우. 블록 스코프 내에서(ex. 임의의 함수 내에서) 할당된 변수의 주소를 가리키고 블록이 끝난 경우 3. 증상 Segmentation fault memory access deny -> 예측 불가능한 동작 4. 해결 방법 free 할 경우 메모리 해제 이후 해당 포인터변수를 자동으로 NULL을 가리키게한다. free(ptr) ptr = NULL; Dangling Pointer 문제를 자동으로 발견하게 해주는 third party tool 사용 5. 예제 free해도 Dangling Pointer가 되지 않..