Нужно ли освобождать элементы списка? - PullRequest
5 голосов
/ 19 октября 2011

Здравствуйте, у меня есть список типа TList.Я заполняю его указателем на записи, которые создаются с new.

Один из моих коллег сказал мне, что освобождение списка освободит все элементы, но я сомневаюсь, потому что я использую C. Так же, как и в Delphi 7, есть какая-то сборка мусора, а я действительно нетдолжен освободить каждый элемент?Может кто-нибудь объяснить мне, как это работает?

1 Ответ

14 голосов
/ 19 октября 2011

TList содержит указатели, но не владеет вещами, на которые они указывают. Он не может, потому что не знает, как вы их распределили, поэтому он также не может знать, как их выпустить. Вам нужно уничтожить эти предметы самостоятельно, если они должны быть уничтожены.

Ваш коллега может подумать о TObjectList, который может по желанию владеть элементами в списке.

...