![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Освободится ли память?
vidiv © (2004-12-03 21:38:00)такой простой код:
type Tmyvar=record
name : string;
sizes : array of byte; // Динамический
end;
var Data: array of Tmyvar;
begin
{!!!Контрольная точка 1!!!}
SetLength(Data, 100);
SetLength(Data[50].sizes, 30);
Data[50].sizes[25] := 34;
SetLength(Data, 0);
{!!!Контрольная точка 2!!!}
end;
В результате выполнения кода между контрольными точками память должна освободится.
Вопрос нужно ли выполнятьSetLength(Data[50].sizes, 0)в данном случае, чтобы избежать утечки памяти?
vidiv (2004-12-04 00:39:00) [1]спасибо :)
Alex Konshin (2004-12-03 21:58:00) [2]освобождать элементы массива не нужно, компилятор сам все сделает.
vidiv (2004-12-03 21:54:00) [3]
> Alex Konshin © (03.12.04 21:53) [2]
> А, sorry, Data у тебя глобальная переменная, тогда SetLength
> нужен.
тоесть и тот что стоит и тот который я предложил вставить?
Alex Konshin (2004-12-03 21:53:00) [4]А, sorry, Data у тебя глобальная переменная, тогда SetLength нужен.
Alex Konshin (2004-12-03 21:52:00) [5]Освободится. Можешь даже не делать последнего SetLength