社区
C++ 语言
帖子详情
怎么判断一个空间被释放掉了.
zhulinjia
2008-10-26 04:01:17
怎么判断一个空间被释放掉了..
怎么判断一个空间被释放掉了...
...全文
249
26
打赏
收藏
怎么判断一个空间被释放掉了.
怎么判断一个空间被释放掉了.. 怎么判断一个空间被释放掉了...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Super.Jiju
2008-10-29
打赏
举报
回复
[Quote=引用 4 楼 Leejun527 的回复:]
如果能养成好习惯在free(p)之后让p = NULL,以后你自然就知道指针p是否已经释放了。
[/Quote]
正解诶
JackyRao
2008-10-29
打赏
举报
回复
Good programming style is good things to this problem.
xtting_8984313
2008-10-27
打赏
举报
回复
1、写一个宏,所有的删除用这个hong
#SAFE_DEL(P) if(P){delete P; P=NUll}
这样就保障不会有野指针。当然前提是对所有指针正确的初始化。
2、使用引用计数(智能指针)
dreamer_shax
2008-10-27
打赏
举报
回复
记住了,确实应该这样
weishifenke
2008-10-27
打赏
举报
回复
好的习惯要学习,顶
insmile
2008-10-26
打赏
举报
回复
学习
insuya
2008-10-26
打赏
举报
回复
释放之后指针手动指向NULL
之后在根据判断指针是否为空呗
就是自己记着点!!!!
春江花月园
2008-10-26
打赏
举报
回复
[Quote=引用 11 楼 jackzhhuang 的回复:]
楼上各位说的都对。
楼主非要知道某个内存可不可读,可以用这个函数:
IsBadReadPtr()
详见MSDN
[/Quote]
学习了
budweiser
2008-10-26
打赏
举报
回复
[Quote=引用 11 楼 jackzhhuang 的回复:]
楼上各位说的都对。
楼主非要知道某个内存可不可读,可以用这个函数:
IsBadReadPtr()
详见MSDN
[/Quote]
这种方法好像也不是万能的
冰山之海
2008-10-26
打赏
举报
回复
自己写一个new 的重载函数和delete的重载函数,函数体里用一个数组或自己定义一下数据结构把你开辟的内存记录下来,delete的时候又把记录去掉,最后写一个打印就知道自己那些内存没有清理
void* operator new(size_t size)
{
void* p = malloc(size);
//把p的地址记来的,再把size记下来,做一个结构体,把__LINE__ 和__FILE__记下来也行
return p;
}
delete操作同样 删掉自己的相应记录就可以了
kingofice
2008-10-26
打赏
举报
回复
3楼、4楼正解。
如果有很好的,对原有代码不做改变,不付出代价(性能,或者工作量)就能检查内存是否已经被释放过,那么,内存泄漏这个老大难问题早就解决了。
所以,最好的办法是养成习惯,不要出现野指针,切记让new与delete或者malloc与free配对。
冻结
2008-10-26
打赏
举报
回复
再delete一次,会编译错误。
机智的呆呆
2008-10-26
打赏
举报
回复
楼主到msdn 搜跟_CrtIsValidHeapPointer 有关的函数吧~~~~
program2050
2008-10-26
打赏
举报
回复
[Quote=引用 3 楼 wuyu637 的回复:]
int main()
{
int * t = new int[10];
cout < < "hello world" < < endl;
if(t !=NULL)
{
delete []t;
t = NULL;
}
}
一旦释放掉一个指针,就把这个指针赋值为null,
每次释放之前检查指针的值是否为空。
[/Quote]
好习惯
gulangduxing
2008-10-26
打赏
举报
回复
学习ing
jackzhhuang
2008-10-26
打赏
举报
回复
楼上各位说的都对。
楼主非要知道某个内存可不可读,可以用这个函数:
IsBadReadPtr()
详见MSDN
ok208043624
2008-10-26
打赏
举报
回复
[Quote=引用 3 楼 wuyu637 的回复:]
int main()
{
int * t = new int[10];
cout < < "hello world" < < endl;
if(t !=NULL)
{
delete []t;
t = NULL;
}
}
一旦释放掉一个指针,就把这个指针赋值为null,
每次释放之前检查指针的值是否为空。
[/Quote]
顶
fenghuijun135
2008-10-26
打赏
举报
回复
学习
jone33
2008-10-26
打赏
举报
回复
判定你那个对象是否为NULL,如果你是用New申请的就Free它,并将它置为NULL
如果你是用Malloc申请的就Delete它,并将它置为NULL
visame
2008-10-26
打赏
举报
回复
YES
这是一个好习惯
一旦释放掉一个指针,就把这个指针赋值为null,
每次释放之前检查指针的值是否为空。
加载更多回复(6)
Oracle数据库表
空间
整理回收与
释放
操作
本文介绍了如何在Oracle数据库中降低表
空间
的高水位,包括查看表
空间
状态、清理回收站、整理碎片以及通过SQL指令进行表
空间
的
释放
。此外,还提供了清空表数据、迁移表数据的方法,以有效地回收和管理存储
空间
。
【linux】文件已经删除,但
空间
未
释放
怎么办
当Linux系统中删除大文件后
空间
未
释放
,可能是由于进程仍持有文件锁或继续写入数据。例如,Apache的access_log日志文件在被删除后,由于httpd进程持续写入,导致
空间
未
释放
。解决方法是使用lsof命令检查并确认哪个进程在写入,然后可以清空文件而非直接删除,如`echo > /access_log`,这将立即
释放
空间
且不影响进程继续写入。
c语言中
判断
申请的动态内存是否被
释放
了
博客介绍了通过动态申请内存创建链表,读入数据后,
判断
释放
与不
释放
前后指针所指
空间
的数据是否一致,以此来确定内存是否
释放
,还给出了未
释放
和
释放
内存的代码及运行结果。
指针
空间
的申请与
释放
本文深入讲解C语言中的malloc()和free()函数,包括基本概念、使用方法和注意事项,以及它们如何从堆中获取和
释放
内存
空间
。同时,文章强调了指针初始化、正确申请和
释放
内存的重要性。
为什么文件删除了但磁盘
空间
没有
释放
?
文章讲述了在Linux环境中,当服务器磁盘
空间
告急,发现大文件并删除后
空间
未
释放
的问题。原因是文件被进程锁定,如Nginx进程写入访问日志。解决方案包括重启进程或使用在线清空文件的方法来
释放
磁盘
空间
。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章