首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

库函数开释指针后为啥不置NULL

2012-12-30 
库函数释放指针后为啥不置NULL ?比如free(p)为啥库函数不用:free(&p)在free()里最后加一句:*p NULL这

库函数释放指针后为啥不置NULL ?
比如
free(p);

为啥库函数不用:
free(&p);

在free()里最后加一句:
*p = NULL;

这样不就可以避免很多野指针了吗?
[解决办法]


A* p = malloc(...);
A* p1 = p;
free(&p);
//此时p=NULL,p1!=NULL

所以我觉得不能避免野指针。
[解决办法]
为了可读性+效率;

LZ自己达到这样的效果也可适配一下,比如
#define SAFE_FREE(p) if(p){free(p);p = null;}

热点排行