Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Освобождение памяти


Автор: tofreesky 5.7.2010, 18:42
Если есть структура в которой несколько динамических массивов разного типа. 
Я динамически выделяю N структур, в каждой структуре N эллементов в массивах.

Как потом правильно особождать память?

Код

for i:=0 to AR_NUM-1 do
begin
 AR[i].a:=nil;
 AR[i].b:=nil;
end;
AR:=nil;


Или можно сразу AR:=nil? Но выделенная память внутри структуры осободится деструктором или нет?

Как правильно делать?

Автор: CodeMonkey 5.7.2010, 18:45
Цитата(tofreesky @  5.7.2010,  19:42 Найти цитируемый пост)
Или можно сразу AR:=nil?

Можно.

Цитата(tofreesky @  5.7.2010,  19:42 Найти цитируемый пост)
Но выделенная память внутри структуры осободится деструктором или нет?

Да.

Причём часто такая ручная очистка излишня. Динамические массивы относятся к авто-финализируемым типам в Delphi (как, например, строки). Т.е. они сами автоматически чистятся, когда переменная выходит из области видимости. Но ничего страшного в явном освобождении нет.

Автор: graffi 8.7.2010, 11:51
Как объявлена структура и как под нее выделяется память?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)