|
이경문 님이 쓰신 글 :
: new, delete를 하니까 아무래도 스택이 아니고 힙 영역 같은데요,
: 비스무리하게 코딩을 해 봤습니다.
:
: char *p = (char*)malloc(1);
: *p = 'a'; <--- (1)
: free(p);
: *p = 'b'; <--- (2)
:
: (2)에서 에러(Access Violation Error)가 나지 않네요. 흐미~ -_-;
위 코드는 당연히 동작하는 코드인게 맞다고 생각되는 걸요..
p는 포인터변수이고 하나의 동적으로 할당된 포인터를 저장했다가...
'a'가 저장된 주소를 저장했고(이러면 동적으로 할당된 주소는 날아가버리겠죠)
저장된 주소를 free시키고(동적 할당은 아니지만 가능하겠죠)
다시 'b'가 저장된 주소를 대입했으니...
왜 에러가 나야한다고 하시는 건지.....
|