난 작은 C 프로그램을 실행했다 : 메모리 손상
#include<stdio.h>
int main()
{
char *p;
p = (char *)malloc(10);
free(p);
free(p);
free(p);
printf("\npointer is freed!!\n");
}
은 기본적으로 이미 해제 된 메모리를 해제하고있다. 코어 덤프가 발생한다고 생각합니다 !! 그렇지 않습니까?
하지만 인쇄 된
pointer is freed!!
잘못 난 어떤 곳입니까?
이런 일이 발생하지 않게하는 좋은 방법은'free (ptr); ptr = NULL;', 왜냐하면'free (NULL); '는 no-op이다. 또한 OP의 예제에서'malloc'은'NULL'을 반환 할 수있었습니다. –