定义了一个数组: 
strary:array[1..100] of Integer;
我给这个数组赋值后,不再用了,想把这个数组的内存给释放掉,如何做呢?
我按下面的做会出错的。
procedure TForm1.Button6Click(Sender: TObject);
var
  Buffer: PChar;
begin
  Buffer:=@strary;
  freeMem(Buffer);
end;
请教各位!谢谢!

解决方案 »

  1.   

    sorry 看错了,上面的不对
      

  2.   

    谢了!:)
    我想知道,为什么下面的做法运行的时候会出错,编译没有错误。
    我定义的是全局的数组。
    procedure TForm1.Button6Click(Sender: TObject);
    var
      Buffer: PChar;
    begin
      Buffer:=@strary;
      freeMem(Buffer);
    end;
      

  3.   

    freeMem 只能是释放GetMem分配的内存。
    而且这内存必须是动态分配在堆里。静态分配的内存不是在堆里,应该没有那种‘释放’的概念。
      

  4.   

    要分清楚 内存 以及其相应的分配区域
    动态的分配在堆上heap, 而静态的则一般分配在栈上stack
    stack的内存管理由函数<系统>自行管理,在进入函数的时候 分配 退出的时候 释放 不能进行人工释放而heap则需要自己进行管理 包括分配 释放等
      

  5.   

    beyondtkl(大龙驹<梦.考古广告人生>) 
    我严重同意!!!