Delphiコードがあります
var
a: array of array of array of integer;
begin
try
SetLength(a, 100000, 100000, 10000); // out of memory here
doStuffs(a);
except
a = nil; // try to free the memory
end;
end;
上記のコードは大量のメモリを割り当てようとし、out-of-memory
キャッチされます。はa=nil
実行されますが、メモリは解放されません。
メモリ不足の例外が発生した場合にメモリを解放する方法はありますか?
試しSetLength(a, 0, 0, 0)
てみFinalize(a)
ましたが、どちらも機能しません。