如果我声明
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”)。但是,如果我在调用之前将 s1 字符串设置为空dispose
没关系。
我发现的第二种方法是从记录类型更改为类,然后而不是new
我正在创建实例,而不是dispose
我正在打电话instance.Free()
。它无需手动清洁琴弦即可工作。
有没有办法让 Delphi 在我调用时自动清理我的字符串dispose
?
FastMM 是您的 .dpr 中使用的第一个单位吗?否则,它可能会过早完成,报告错误的内存泄漏。
这个简化的代码示例是否也会产生与使用 JvSimpleXML 时相同的内存泄漏?如果不是,则可能发生的事情比您怀疑的还要多。
我认为:当FastMM报告内存泄漏时,就存在内存泄漏。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)