比如:
mARval:array of char;setlength(mARval,10);fillchar(mARval,4,0);
setlength(mARval,20);
之所以这样做,是因为偶尔发现,不知什么原因导致mARval指针错误,导致无论如何运行,第二次setlength一定报错。而这样做,就可以不发生。
但我怀疑这样可能导致内存泄漏。

解决方案 »

  1.   

    这个回收应该是由delphi自动回收的,当你的程序运行结束的时候
      

  2.   

    我知道delphi会自动回收啊,我只想知道,这样将setlength的指针清0或改变后,delphi是否还能自动free那块内存?!
      

  3.   

    动态数组不可直接fillchar(mARval,4,0);
    必须改成FillChar(mARval[0], 10, 0);形式,
    因为mARval实际上只是个动态指针, 
    fillchar(mARval, 4,0)改的是指针的值,不是改其所指内容的值