如果我声明
PSomeStruct = ^TSomeStruct;
TSomeStruct = record
s1 : string;
end;
我运行以下代码:
var
p: PSomeStruct;
begin
new(p);
p^.s1:= 'something bla bla bla';
dispose(p);
FastMM 4 内存管理器报告存在内存泄漏(类型:字符串,数据转储:“something bla bla bla”)。但是,如果我在调用dispose
它之前将 s1 字符串设置为空,就可以了。
我发现的第二种方法是从记录类型更改为类,然后new
我不是创建实例,而是dispose
调用instance.Free()
. 它无需手动清洁琴弦即可工作。
有没有办法让 Delphi 在我打电话时自动清理我的字符串dispose
?