小编alp*_*sin的帖子

Delphi中的数组可用内存

使用FastMM4时,函数DynArraySetLength中的system.pas存在内存泄漏.我正在使用一个列表,其中每个元素有5条记录.这些记录依次列出数百万的订单.因此,小内存泄漏积累为巨大的块.

在释放元素的同时,我故意使用SetLength(x,0)和x:= nil.但是,在system.pas的DynArraySetLength中仍然存在内存泄漏.有人可以建议我如何使用有效的方式释放阵列,并克服这个内存泄漏.

提前致谢

代码:此过程的SetLength发生内存泄漏

 procedure TElem.Assign(Value: TElem);
 begin
 SetLength(Self.aXY.points, Length(Value.aXY.points)); //MEMORY LEAK
 Move(Value.aXY.points[0], Self.aXY.points[0],
 Length(Value.aXY.points) * SizeOf(coordinate));
 end;
Run Code Online (Sandbox Code Playgroud)

在释放我正在使用此过程:

 procedure TElem.FreeElem;
 begin
 SetLength(Self.aXY.points,0);
 Self.aXY.points:=nil;
 end;
Run Code Online (Sandbox Code Playgroud)

memory arrays delphi pascal record

-4
推荐指数
1
解决办法
797
查看次数

标签 统计

arrays ×1

delphi ×1

memory ×1

pascal ×1

record ×1