动态数组是否超出范围时会自动解除分配?

Aza*_*ien 16 delphi memory-leaks reference-counting dynamic-arrays

在这个例子中

procedure foobar;
var tab:array of integer;
begin
  setlength(tab,10);
end;
Run Code Online (Sandbox Code Playgroud)

是阵列被破坏还是内存泄漏?

And*_*and 16

内存被释放.(也就是说,没有内存泄漏!)

  • 如果元素也由编译器管理(dyn数组,字符串,intf,具有此类类型的记录等),也会释放元素. (4认同)
  • 对于"tab:Integer数组",一切都被释放.对于"tab:TObject数组"或任何其他类,您必须自己释放对象. (2认同)