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

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

TList [D7, Win95/98, WinXP]


Страницы:   1 2

Simon ©   (2004-10-06 08:28:00) 

Подскажите TList уничтожает хранимые элементы или я сам должен удалять их из памяти


Amoeba   (2004-10-06 11:27:00) [21]

TList не может сам уничтожать хранимые элементы. Это верно для всех версий Delphi от 1-й до 7-й, посколько иначе и быть не может. Ведь по определению TList не знает и не может знать, что в нем хранится ("обычные" указатели или объекты).


Evgeny V   (2004-10-06 09:08:00) [22]

Вопрос несколько туманен, но надеюсь понял его.
Сорри, для дельфи 7 не знаю, но думаю это осталось так же как и в 6 версии.

При вызове Tlist.Delete  просто уменьшает счетчик элементов в своем списке, если надо (Index < Count) реорганизует cписок указателей, освобождения памяти, распредленной под твой указатель для твоих данных, занесенный в TList не происходит. Это лежит на тебе, твоей программе.
Если имелось ввиду освобождение памяти самого TList, распределенной под хранения указателей, то и в этом случае не происходит освобождение памяти, смотри Capasity. При вызове СLear происходит освобождение памяти, распредленной под хранение указателей, но память ассоцированную с указателями ты так же должен освобождать сам

Это пример кода, часть только из хелпа по Tlist метод Add, в конце есть и следущие строки.

for B := 0 to (MyList.Count - 1) do
  begin

    ARecord := MyList.Items[B];
    Dispose(ARecord);// освобождение памяти ассоциированной с указателем
  end;


ЮЮ   (2004-10-06 08:57:00) [23]

Не за что, даже если там указатели на динамически выделенные record-ы, выделенная под них память тоже не освободится.


Simon   (2004-10-06 08:55:00) [24]

Спасибо


ЮЮ   (2004-10-06 08:55:00) [25]

если только они не хранят указатели на объекты: указатели уничтожатся, объекты нет. Для "хранения" объектов см. TObjectList


Digitman   (2004-10-06 08:31:00) [26]

уничтожает


Страницы:   1 2

Наверх

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