Динамические массивы подсчитываются по ссылке, поэтому память автоматически освобождается компилятором. Мой вопрос: когда именно происходит автоматическое освобождение? Это происходит немедленно или в конце содержащейся процедуры?
Вот конкретный пример
procedure DoStuff;
var data:TBytes;
begin
data:=GetData; // lets say data now contains 1 Gig of data.
DoStuffWithData(data);
// I now want to free up this 1Gig of memory before continuing.
// Is this call needed, or would the memory be freed in the next line anyway?
Finalize(data);
data:=GetMoreData; // The first array now has no remaining references
DoStuffWithData(data);
end
Является ли вызов finalize() избыточным?