读书人

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

发布时间: 2012-12-30 10:43:15 作者: rapoo

库函数释放指针后为啥不置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;}

读书人网 >C语言

热点推荐