定义了一个数组:
strary:array[1..100] of Integer;
我给这个数组赋值后,不再用了,想把这个数组的内存给释放掉,如何做呢?
我按下面的做会出错的。
procedure TForm1.Button6Click(Sender: TObject);
var
Buffer: PChar;
begin
Buffer:=@strary;
freeMem(Buffer);
end;
请教各位!谢谢!
strary:array[1..100] of Integer;
我给这个数组赋值后,不再用了,想把这个数组的内存给释放掉,如何做呢?
我按下面的做会出错的。
procedure TForm1.Button6Click(Sender: TObject);
var
Buffer: PChar;
begin
Buffer:=@strary;
freeMem(Buffer);
end;
请教各位!谢谢!
解决方案 »
- 没见过!!很惊讶!!
- 请问delphi里有没有这种功能啊(从代码中控件的name,跳到窗体上的控件)
- 请问怎么在进程中查找某一个值?
- delphi2007 dbexpress 连接不上SQL
- 有indy方面的中文资料吗?在线等待
- 服务器程序等!200分立即送上,急!!!!!
- 谁能帮我读一下这段代码?内容不多!很急!
- 请问各位大虾这DELPHI6企业版哪里有的下载?????????????????????????
- 到现在还没有实洋Delphi6,如何将网络格式的XML转换成CDS可以阅读的XML格式?
- 大虾们,有办法了!
- DEPHI IDE的几个小问题
- 玩过《传奇世界》&《传奇》的朋友,从程序的角度给一个评价
我想知道,为什么下面的做法运行的时候会出错,编译没有错误。
我定义的是全局的数组。
procedure TForm1.Button6Click(Sender: TObject);
var
Buffer: PChar;
begin
Buffer:=@strary;
freeMem(Buffer);
end;
而且这内存必须是动态分配在堆里。静态分配的内存不是在堆里,应该没有那种‘释放’的概念。
动态的分配在堆上heap, 而静态的则一般分配在栈上stack
stack的内存管理由函数<系统>自行管理,在进入函数的时候 分配 退出的时候 释放 不能进行人工释放而heap则需要自己进行管理 包括分配 释放等
我严重同意!!!