我今天在写一个由txt文件导入到sqlserver数据库的时候,使用了一个string数组,

var
arrs:array [1..35] of string;在程序运行时,将用到这个字符串数组,但当程序结束时,我发现可用内存少了很多,所以想问一下,关于字符串数组什么时候释放的问题
还有,如果我在程序的末尾加上
for i:=1 to 35 do 
  arrs[i]:='';
有没有点用处?是不是有点画蛇添足?

解决方案 »

  1.   

    1. 你不用担心,程序结束的时候,你的字符串数组的内存肯定被释放了。
    2. 其实,使用Delphi中有很好用的StringList可以代替字符串数组
    var
     myList:Strings;
     str1:string;
     cnt:integer;
    begin
     myList:=StringList.Create;
     myList.LoadFromFile('d:\test01.txt'); //一次读入全部文件,很方便吧
     str1:=myList.Strings[0]; //跟字符串数组用法差不多吧
     cnt:=myList.Count;  //共有多少行字符串
     ...
     myList.Free; //释放,千万别忘了
    end;
      

  2.   

    如果String是局部变量,过程序完后自动释放的。
    如果String是全局变量,会在应用程序结束时才释放。 
    (我也没真正测试过它的真假, 反正书是这样写)。
    最后一步好象没用。
      

  3.   

    用SetLength(VArray,0)来释放数组VArray
      

  4.   

    用SetLength(VArray, 0)来释放数组VArray