关于 Delphi 中内存释放

Delphi 中的 String 类型 (即 AnsiString ) 在用完后需要 Clear ,

于是请问如何释放 String 的内存空间,

并且对于一个结构体 (record ...) 的如何一次性释放里面所有的内存空间。

以上问题希望有高人解决。

注:对于回答者,希望所说的方法都是经过实践得出的,不要人云亦云。
说明一下,我是以节约的方式进行设计的,希望能有释放的方法。

String 类型的内存是按读入的最大内存算的。

算了,如果有可以将一个包含各种数据类型的结构体全部赋初值的方法,也可以采纳。

唉~~,还是我自己解决了。

只要

Finalize(S);
FillChar(S, SIzeOf(S), 0);

就能释放并清空了。

对于采纳,只有 swfccwz 答到点子上去了,就“勉为其难”地采纳了吧。

过程内定义的字符串类型变量,即局部变量,当过程执行完毕,局部变量即自动销毁,无需程序员处理.
至于你所说的结构体,大概说的是自定义记录类型吧,你在创建实例和使用之后,用free销毁它就行了.全局变量,它的作用是在整个程序运行期间起保存和传递数据之用的,也就是说这个变量在用户执行某一操作之后,要保存数据,过一会用户在执行另一个操作时,还要使用这个数据,只有要承担这种任务的变量才定义为全局变量,除此之外,都应定义为局部变量.全部变量中的数据需要程序员销毁或者清除才能释放内存资源.追问

record 貌似没有 free

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-02
string类型不需要释放,在退出时按局部变量或全局变量由声明的过程释放,如果是指针PAnsiChar就需要主动释放追问

string不释放的话,内存在新的数据进来时不会减少。

第2个回答  2012-01-02
用完就str:=''追问

record 怎么释放

本回答被提问者采纳