+ -
当前位置:首页 → 问答吧 → 问下关于内存相关的问题

问下关于内存相关的问题

时间:2011-08-25

来源:互联网

公司的程序有一个结构体,里面包含一些TStringlist,TLIST变量。
Delphi(Pascal) code

PTest=^_Test;    // 在系统参数
  _Test=Record
  Stringlist:TStringlist;
  LIST:TLIST;
END;
 



在程序登录的时候会分配一些空间。
Delphi(Pascal) code

Stringlist:=TStringlist.Create;
LIST:=TLIST.Create;


但是在程序退出的时候并没有去释放这些变量。
这样也没有报错,对程序也没有影响。但是我自己用EurekaLog检测出大量的内存没有释放。
这样做是不是不合理的呢?记得说过什么程序退出就会自动释放这些内存所占的地址,是这样的吗?
还有一个问题,比如我NEW()了某个变量,这个我也没有释放,是不是程序退出的时候自己释放的呢?

作者: xiaofansong   发布时间: 2011-08-25

不用最好自己手动释放

作者: bdmh   发布时间: 2011-08-25

1 当然不合理
2 如果创建新窗体控件parent填入了非空,则在父控件释放时窗体空间会由父控件负责释放,另外栈上的分配空间好像是自动释放的,但仅适用于栈上的内容
3 不会的即便是结构,使用了new之后也是需要释放的


作者: funxu   发布时间: 2011-08-25

PS:另外,你们公司这个程序员好牛........

作者: funxu   发布时间: 2011-08-25

TO 楼上的,不合理是不是自己要手动去释放呢。
  我问的程序退出会自动释放这句话是错误的吗?
ps:为啥这个程序员牛呢。

作者: xiaofansong   发布时间: 2011-08-25

程序退出时会自动释放

作者: sz_haitao   发布时间: 2011-08-25

热门下载

更多