码迷,mamicode.com
首页 > 其他好文 > 详细

在用free()函数释放指针内存时为何要将其指针置空

时间:2020-01-11 16:49:06      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:def   定义   宏定义   程序   判断   没有   忘记   分配   地址   

在通过free()函数释放指针内存之后讲其指针置空,这样可以避免后面的程序对与该指针非法性的判断所造成的程序崩溃问题。释放空间,指针的值并没有改变,无法直接通过指针自身来进行判断空间是否已经被释放,将指针置空有助于判断一个指针所指向的空间已经被释放。

内存泄露:

  例如:int *p = (int *)malloc(sizeof(int)),如果在用p只想其他地址,则原本malloc()分配的地址便找不到了,造成内存泄露的后果。

free(p)后,p是一个非法指针,不可以对他进行访问。为了防止忘记对释放内存后的指针的置空,可以在函数的开头宏定义一个函数

#define free(p)

  if(p)

{

free(p);

p = NULL;

}

在用free()函数释放指针内存时为何要将其指针置空

标签:def   定义   宏定义   程序   判断   没有   忘记   分配   地址   

原文地址:https://www.cnblogs.com/zoutingrong/p/12178631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!