我想在Delphi中運行一個老的midi組件,它的大部分工作,但如果我嘗試加載一個行中的2個文件,它崩潰。getmem內存泄漏,德爾福
一些研究讓我安裝了EurekaLog,它指向code.yay中的內存泄漏!
我對內存指針的東西不太好,但是這段代碼被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? –