gpt4 book ai didi

delphi - 记录和内存泄漏

转载 作者:行者123 更新时间:2023-12-03 15:37:35 25 4
gpt4 key购买 nike

您能帮我解决这个问题吗?这是我的代码。我存储(在本示例中)10000 个字符串,当我尝试删除它们时,仅释放了部分内存,其余内存泄漏。

type
PMyData = ^TMyData;
TMyData = record
Name: string;
end;
////////

var
XList:Tlist;
//////////

// Here is how I add//
var
MyData: PMyData;
I:Integer;
begin
for I:=0 to 10000 do begin
New(MyData);
MyData.Name:='Hello';
XList.Add(TObject(MyData));
end;
end;


///Here is how I delete///
var
MyData: PMyData;
I:Integer;
begin
for I:= XList.Count - 1 downto 0 do begin
MyData:=PMyData (XList[I]); /// I also used (XList.Items[I]) but the result is the same
Dispose(MyData);
XList.Delete(I);
end;

最佳答案

我发现该代码没有泄漏。您如何确定发生泄漏?你在看任务管理器吗?如果是这样,那么这不是检测内存泄漏的可靠方法。 VCL 内存管理器不会将释放的内存释放回操作系统,而是将其缓存以供以后重新使用。任务管理器显示分配的内存。它不知道应用程序实际上如何管理内存。

关于delphi - 记录和内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2016355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com