Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Освободится ли память?


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо