tstings等对象,在语句内部使用完后应释放。以减少内存使用,但如果是函数的返回值.有必要在使用后释放吗?怎么放?因为调用已经结束,我不可能再去释放一次啊?
function gettstrings():tstrings;
begin
  result:=tstrings.Create;
  result.Add('ok');
end;form.caption:=gettstrings.text;
这样完了以后,这个实例自动释放了吗?我反复使用会吃掉内存吗?

解决方案 »

  1.   

    一样可以释放啊:var  resultstring: tstrings;resultstring := tstrings.Create;resultstring := gettstrings();form.caption := resultstring.text;resultstring.free();或者你采用传变参的方法,将变量作为参数传进去,返回后在释放也可以。
      

  2.   

    给你个帖子看看。http://community.csdn.net/Expert/topic/3184/3184337.xml?temp=.7475092
      

  3.   

    一样可以释放啊:var  resultstring: tstrings;resultstring := tstrings.Create;resultstring := gettstrings();form.caption := resultstring.text;resultstring.free();或者你采用传变参的方法,将变量作为参数传进去,返回后在释放也可以。
    但我认为这个老兄的作法不一定对。因为这里resultstring也新创建了。这样是不是就创建了两个,只释放了一个?