【发布时间】:2010-01-18 18:22:49
【问题描述】:
我正在尝试在 Delphi 中运行一个旧的 midi 组件,它大部分都可以工作,但是如果我尝试连续加载 2 个文件,它会崩溃。
一些研究让我安装了 EurekaLog,这表明代码中存在内存泄漏。耶!
我对内存指针的东西不是很好,但是这段代码被 Eureka 突出显示在这里让我思考,也许有一个内存没有被释放的错误??
我尝试在末尾添加FreeMem,但它不起作用?
function TMidifile.ReadString(F: integer): string;
var
s: PChar;
i: integer;
begin
GetMem(s, F + 1);
s[F] := chr(0);
for i := 0 to F - 1 do
begin
s[i] := Chr(chunkIndex^);
inc(chunkIndex);
end;
result := string(s);
end;
【问题讨论】:
-
首先,调用 FreeMem 后“它不起作用”是什么意思?二、你用的是什么版本的Delphi?
标签: delphi memory-leaks