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

有办法检测free()开释内存是否成功吗

2012-09-10 
有办法检测free()释放内存是否成功吗?任何函数执行都有成功或者失败,如何检测free()函数是否释放成功呢?[

有办法检测free()释放内存是否成功吗?
任何函数执行都有成功或者失败,如何检测free()函数是否释放成功呢?

[解决办法]
如果失败了,那是操作系统该负责的事情了
楼主开发应用层的程序,可以不必去关心细节
不过考虑周到的,在具体程序开发的时候
会对这类不可预测的错误进行一些防御性处理
[解决办法]
再 free() 出错
[解决办法]
1) free的动作只是给heap上的内存段做个标记,系统要分配内存的时候就可以重新进行分配。free掉的指针还是指向那个位置,只是这个位置的内容可能已经变化,这时候叫做野指针。
2) 成熟的做法是:
if(p != NULL)
{
free(p);
p = NULL;
}
这样可以防止野指针。

热点排行