[질문] malloc, free
글쓴이: 익명 사용자 / 작성시간: 일, 2002/09/22 - 1:51오후
char *cp;
cp = (char *) malloc(20);
strcpy(cp, "hello");
printf("%s\n", cp);
free(cp);
printf("%s\n", cp);
이런 부분 소스가 있는데요..
왜 free()한 후에도 printf()에서 hello가 찍힐까요??
그리고, 디버깅해보니, cp가 가리키는 주소도 바뀌지 않던데요..
왜 그런가요??
free()가 동적할당받은 메모리를 다시 os로 반환하는 함수로 알고 있는데,
위와 같이 변한게 없는데, 자기 역할을 제대로 하고 있는건지...
궁금하네요 ^^
Forums:
Re: [질문] malloc, free
free를 하면 해당번지의 값을 지워주는 것이 아니라 해당번지를 사용해도
된다고 os에게 알려주는 것입니다.
댓글 달기