在这个例子中。
procedure foobar;
var tab:array of integer;
begin
setlength(tab,10);
end;
这个数组是被销毁了还是存在内存泄漏?
procedure foobar;
var tab:array of integer;
begin
setlength(tab,10);
end;
这个数组是被销毁了还是存在内存泄漏?
内存已被释放。(也就是说,没有内存泄漏!)
执行SetLength(tab,0); 这是额外的一行。
如果你担心这个问题,那么可以将其包装在try / finally块中。 - Vivian Mills