你可以建一个TSTRINGS的实例,用完后FREE,在建实例时声明后一定要CREATE,这样的函数没有意义,直接:
var
 A :TStrings;
begin
 A:=TStringList.Create;
 .
 .
 A.Free;
end;
不就可以用了吗?

解决方案 »

  1.   

    我认为函数A只是一个指向Strings地址
    在这个函数里创建了Strings把他返回
    置是返回指向Strings的地址的指针
    在函数外边用完后Free就行了-----------我的理解
      

  2.   

    最好TStrings在函数外部创建/释放
      

  3.   

    var
    A :TStrings;
    begin
     try
       A:=TStringList.Create;
     Finally 
       A.Free;
     end; 
    end;
      

  4.   

    procedure a(var Sp:Tstrings);
    begin
       sp.text:='kkkk';
    end;var t:Tstrings;
    begin
    t:=TstringList.create;
    a(t);
    showmessage(t.text);
    t.free;
    end;
      

  5.   


    var
      A :TStrings;
    begin
      A:=TStringList.Create; //用前Create
      try
        // 使用A
      Finally 
        FreeAndNil(A);  //用完后Free
      end; 
    end;