社区
Delphi
帖子详情
对象释放。。。什么是内存泄露?
wwzhong1
2004-04-30 05:45:19
我自定义的类。用它创建对象后。使用完毕,没有去释放它。有人跟我说‘程序关闭时会把这个对象的内存空间释放掉?’。但是从书上知道。自己创建的对象要自己释放。否则就是内存泄漏了。到底是谁对呀?
...全文
117
13
打赏
收藏
对象释放。。。什么是内存泄露?
我自定义的类。用它创建对象后。使用完毕,没有去释放它。有人跟我说‘程序关闭时会把这个对象的内存空间释放掉?’。但是从书上知道。自己创建的对象要自己释放。否则就是内存泄漏了。到底是谁对呀?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fj218
2004-04-30
打赏
举报
回复
最好是手动释放,程序关闭虽然能够释放,但不一定都能全部安全释放。
所以自己创建的自己一定释放,这也是良好的习惯。
Bellamy
2004-04-30
打赏
举报
回复
最好是你自己创建了,就要把它释放掉!
lijinghe1
2004-04-30
打赏
举报
回复
如果写服务程序,每一次的内存分配都应有一个try finally end结构去释放它。由对象的OWNER去释放是很不保险的。一般的MIS系统,差不多就可以了。
whitetiger8
2004-04-30
打赏
举报
回复
都对啊。哈哈。不过关闭程序时,会把内存释放,如果他一直不关闭程序呢?!!
这是一种不好的习惯。!
TomSonChina
2004-04-30
打赏
举报
回复
如果你创建的时候他的所有者是一个对象,那么那个对象释放的时候可以给你释放,但是不推荐这样。
如果你创建的时候没有指定他的所有者,那么你必须自己释放,否则就有内存泄漏Memory Leak
比如:MyObject:=TMyObject.Create(Form1);那么Form1释放时也会释放你的对象(但是不推荐)
MyObject:=TMyObject.Create(nil);是不会释放你的对象的,你必须自己释放
内存泄漏(Memory Leak):
你在程序中分配的内存没有回收回来,导致那块内存被无用的信息永远占用,如果你的程序多次运行,每次都有内存泄漏,则会导致操作系统的可用内存越来越少,从而使你计算机的可用资源越来越少,计算机越来越慢。
比如上面所说的情况就有可能内存泄漏。
rockswj
2004-04-30
打赏
举报
回复
如果创建的对方的owner释放,则对象被释放。
不过真的不好说清楚。最好自己释放。
Erice
2004-04-30
打赏
举报
回复
D 是释放不干净的
aiirii
2004-04-30
打赏
举报
回复
很難說得清楚, 反正,自己創建的, 就自己釋放, 這樣安全點
jinjazz
2004-04-30
打赏
举报
回复
人快走光了..我也匿
fim
2004-04-30
打赏
举报
回复
书上说得对,自己创建的对象要自己释放
静态创建的对象由Delphi负责处理
liyu001xj
2004-04-30
打赏
举报
回复
都是对的,这是不同方面的问题。
jinjazz
2004-04-30
打赏
举报
回复
自己创建的对象要自己释放
好像delphi不会自动回收
wwzhong1
2004-04-30
打赏
举报
回复
争得好累呀?休息几天再回来。
内存泄露
解决记录——窗口资源
释放
前段时间在解决代码的
内存泄露
问题,解决了部分
内存泄露
问题。 http://blog.csdn.net/enjolras/archive/2011/01/05/6117628.aspx 这篇文章起到了很好的指引作用,让我对MFC里宏观方面的
释放
有了一定了解。 总结一下就是: 1、推荐用DestroyWindow来销毁窗口(或者从窗口派生的
对象
)。 2、重载PostNcDestroy函数通过调用基类的PostNcDestroy函数,如:Cwnd::PostNcDestroy,以及通过delete th
QT中手动
释放
堆中的
对象
(new 出来的)
Qt内存自动
释放
有两个前提条件:1. 必须是QObject的派生类 2.必须指定了parent
对象
即:Qt 中 父亲被删除的时候会自动销毁他的孩子。所以如果New出来的并且没有父亲。那么则需要手动删除它。需要,不然那块空间就一直占用了 QLabel* lb=new QLabel(); delete (lb); if(lb==NULL) { } delete(this);//this是继承Qweiget基类的子控件,当new出来此控件后,想要彻底
释放
此子控件,需...
Java
内存泄露
问题详解
内存泄露
指的是程序运行时未能正确
释放
不再使用的内存资源,导致这些内存资源无法被垃圾回收器回收和重新利用。
内存泄露
会导致程序占用越来越多的内存,最终可能导致内存耗尽和程序崩溃。在Java中,当一个
对象
不再被引用时,Java的垃圾回收器会自动将其标记为可回收,并在合适的时机
释放
其占用的内存。然而,如果存在
内存泄露
的情况,这些不再使用的
对象
仍然被保留在内存中,无法被垃圾回收器回收。
内存泄露
可能是由于编程错误、资源管理不当或设计问题引起的。
【OpenCV】有关内存
释放
的一些问题
转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7586847 前一天把系统整个重写了一遍,脉络清晰了很多,也终于解决了以前很多崩溃,异常退出的问题。这里小小总结一下自己遇到的麻烦。 1、
内存泄露
内存泄露
是说没有
释放
已经不能使用的内存,这里一般指堆的内存才需要显示的
释放
。比如用malloc,calloc,realloc,ne
VS2010检查
内存泄露
VS2010中的C++程序
内存泄露
检测 对于MFC程序是支持内存检测的。对于非MFC程序而言,CRT有一套
内存泄露
的函数,最常用的是 _CrtDumpMemoryLeaks();如下所示: #include int main() { int *pInt = new int(); char *pChar = new char(); double *pDouble = new d
Delphi
5,943
社区成员
262,943
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章