function Chazhao:TStringList;
begin
result:=TStringList.Create;
result.Add('aaa');
end;
(delphi)function声明为TStringList是否会有内存不被释放?
答案:2 悬赏:0 手机版
解决时间 2021-03-01 00:29
- 提问者网友:棒棒糖
- 2021-02-28 14:17
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-02-28 15:06
楼主的函数应这样调用:
var
SL:Tstringlist;
begin
SL := ChaZhao;//SL自身并不创建,只是指向由ChaZhao函数创建的StringList
try
......
finally
SL.Free;//关键,不执行就会产生内存泄漏
end;
end;
或是直接如下写
with ChaZhao do
begin
try
.....
finally
free;//关键
end;
end;
var
SL:Tstringlist;
begin
SL := ChaZhao;//SL自身并不创建,只是指向由ChaZhao函数创建的StringList
try
......
finally
SL.Free;//关键,不执行就会产生内存泄漏
end;
end;
或是直接如下写
with ChaZhao do
begin
try
.....
finally
free;//关键
end;
end;
全部回答
- 1楼网友:由着我着迷
- 2021-02-28 16:00
你好!
只要没调用Free都会。
打字不易,采纳哦!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯