먼저 생활 비유
반납한 사물함 열쇠
열쇠 번호를 기억해도 사물함을 반납했다면 다음 사용자의 물건을 건드릴 수 있습니다.
3.7 · 메모리와 포인터
주소는 남아 있는데 그곳을 더 이상 사용하면 안 되는 순간은 언제일까요?
포인터 값이 존재한다는 사실과 그 주소를 안전하게 사용할 권리가 있다는 사실은 다릅니다.
먼저 생활 비유
열쇠 번호를 기억해도 사물함을 반납했다면 다음 사용자의 물건을 건드릴 수 있습니다.
컴퓨터 예제로 바꾸기
free(user);
print(user->name); // 위험user가 가진 주소 숫자는 남아 있지만 그 블록은 이미 다른 객체에 재사용될 수 있습니다.
지금 일어나는 변화
포인터가 유효한 블록을 가리킵니다.
이 그림에서 기억할 한 문장
메모리 안전은 주소의 범위뿐 아니라 객체의 수명과 소유권을 함께 지키는 문제입니다.
현재 상태
30초 확인 문제
free(p) 직후 p의 숫자 값은 보통?
처음 보는 용어 두 개
이 절을 다 읽었다면
메모리 안전은 주소의 범위뿐 아니라 객체의 수명과 소유권을 함께 지키는 문제입니다.