如何测试一个指针指向的堆内存是否已经被释放
时间:2011-11-28
来源:互联网
作者: yozola 发布时间: 2011-11-28
可以的。
作者: icechenbing 发布时间: 2011-11-28
系统提供的new和delete好像没有这个功能
作者: hnwyllmm 发布时间: 2011-11-28
作者: mingliang1212 发布时间: 2011-11-28
作者: qscool1987 发布时间: 2011-11-28
释放内存后要把指针致NULL。
可以的。
这个是在确切知道已经释放成功之后,才把指针重置为0,不过我的问题是怎么判断指针指向的内存已经被完全释放了?或者说已经被释放成功了,有什么测试方法么?
delete [] 是不是只要一释放就把之前分配的整段内存全部释放?若是指针不是指向数组首元素的地址,而是指向数组其他元素的地址,那delete操作是成功还是失败?
作者: yozola 发布时间: 2011-11-28
如果要自己管理内存,那么:1) pointer = new xxx 2) use pointer 3) delete pointer and pointer = null. 或者用scoped_ptr或者shared_ptr管理内存。使用shared_ptr你自己不用判断是否释放了,什么时候释放,shared_ptr自己会通过引用计数自动管理。
另外,delete[]得是数组的头,见http://topic.csdn.net/t/20020424/16/673147.html。
作者: gelinsipan 发布时间: 2011-11-28
作者: quwei197874 发布时间: 2011-11-28
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28