我有一段德尔福代码
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)
and Finalize(a)
,两者都不起作用。