对象释放。。。什么是内存泄露?

wwzhong1 2004-04-30 05:45:19
我自定义的类。用它创建对象后。使用完毕,没有去释放它。有人跟我说‘程序关闭时会把这个对象的内存空间释放掉?’。但是从书上知道。自己创建的对象要自己释放。否则就是内存泄漏了。到底是谁对呀?
...全文
71 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
  • 打赏
  • 举报
回复
争得好累呀?休息几天再回来。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧