如果我有一个 C 程序,例如:
SomeTypePtr my_type;
my_type = malloc(sizeof(someType));
/* do stuff */
free(my_type);
/* do a bunch of more stuff */
free(my_type);
为 my_type 调用“free”有什么危害吗?调用 free(my_type) 后,指针是否再次变为空指针?
释放内存区域free
不会使指针的内容为 NULL。假设你有int *a = malloc (sizeof (int))
and a
has 0xdeadbeef
然后你执行free (a)
然后执行后a
仍含有0xdeadbeef
但之后free
调用此内存地址不再为您保留。比如你租了一套公寓malloc
使用了一段时间,归还单位free
那么您可能有一把重复的公寓钥匙,但它不是为您保留的。
Doing a free
已经在free
d 内存将导致双空闲内存损坏。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)