用 malloc 或 realloc 申请的空间需要用 free() 释放空间
如下:
...
obj *ls = (obj*)malloc(sizeof(obj)*5);
...
free(ls);
但这样做可能会导致垂悬指针,所以,我们加上一条命令:ls=NULL;
问题
free函数相当于向系统提示这块内存不用了,但把指针指向 NULL(或0)还会生效吗?
内存不用了,系统还会允许你访问指针并改指为NULL吗?
把代码写成这样:
ls=NULL;
free(ls);
有什么不妥吗?