局域对象有没有必须Free释放 ( 积分: 50 )

  • 主题发起人 主题发起人 sunjunfeng4
  • 开始时间 开始时间
S

sunjunfeng4

Unregistered / Unconfirmed
GUEST, unregistred user!
以下这个函数用到了遇到了局部对象 TComponent,或此继承下来的对象,但是局部的,最后的Free是不是有点多余
 
及时申请,及时释放(不再用了就把他占用的内存释放),虽然程序退出时候
windows会释放由应用程序所申请的内存,但是你要考虑一个情况,就是如果这个函数不断被调用,不断的申请内存却不及时释放,那么在应用程序退出之前,你的系统估计已经崩溃了
 
一般应该Free,因为对象都是建在堆上的;如果你的局部对象指定了Owner,并且你能确保它的Owner会Free,则可以不Free;
不过,用完即Free才是个好习惯.
 
TComponent对象如果是指定了Owner,只要保证Owner被释放,那么这个TComponent也会被释放.
 
声明了一个局部对象变量,是说这对象的变量是局部的。也就是对象的引用是局部的。对象的实例存在与堆,另外的地址空间。当你的对象的owner为nil是,都应该显式调用FREE来释放。
 
如果你写了创建代码,就一定要写释放代码!
 
多人接受答案了。
 

Similar threads

回复
0
查看
863
不得闲
回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部