C语言中的一个小问题,请指点一下

嗜学如命的小蚂蚁 发布于 2016/01/02 22:50
阅读 176
收藏 0

这是从栈中弹出一个元素,free()释放了之后,是不是必须要再赋予一个NULL,这里不太理解呀,不赋予空感觉也可以的,请指点一下,是不是必须要赋予NULL,有什么效果,谢谢了

加载中
0
明月惊鹊
明月惊鹊

赋值为空是为了提醒你以后别用它了, 万一再次使用的时候它已经是NULL, 其他函数里如果都做了判空,大家都没事。

如果你已经释放了指针却不重置, 其他函数又误用了它(它已经是野指针), 会容易出现诡异的事情。

0
rz
rz
不赋值为null就是一个野指针,你没法判断p指向的对象是否为空,可能会导致你不小心二次释放空间,或者操作野指针,导致程序出错
嗜学如命的小蚂蚁
嗜学如命的小蚂蚁
恩恩,谢谢了
返回顶部
顶部