一个指针重复释放会出现什么情况?
我当时的回答是:1.空指针可以重复释放
2.非空指针(可能大概)会报错。
由于好几天没有写代码,对指针有些生疏了,所以对非空指针的情况不太确定 。
所以刚才编写了一个小代码进行了测试:
#include <stdio.h>
int main()
{
int *p = (int*)malloc(sizeof(int)* 5);
free(p);
//p = NULL;
free(p);
return 0;
}
当把p=NULL注释掉时,程序编译通过,但运行时报错。
不注释p=NULL时,程序编译运行都通过。