|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.09.2016, 11:36 | #1 |
Пользователь
Регистрация: 09.09.2013
Сообщений: 21
|
нужно ли освобождать память в деструкторе?
допустим у меня есть класс, в котором есть поле типа L:TList. В констукторе этого класса я создаю его L:=TList.Create;
вопрос: нужно ли освобождать память в деструкторе L.free или это происходит автоматически? |
06.09.2016, 11:40 | #2 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
06.09.2016, 11:40 | #3 |
Форумчанин
Регистрация: 14.02.2013
Сообщений: 222
|
Лучше всего освобождать... Иначе могут появляться непонятные ситуации с распределением памяти... Да и грамотность свою покажите.
|
06.09.2016, 11:50 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Что в них непонятного? Просто не освободится память.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
06.09.2016, 11:54 | #5 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
06.09.2016, 11:55 | #6 |
Пользователь
Регистрация: 09.09.2013
Сообщений: 21
|
ок, тогда еще один вопрос. Например у меня есть список TList, я хочу добавить в этот список указатели на рекорды
TMyrecord=record x:integer; y:integer; end; PMyRecord=^TMyRecord; я делаю это следующим образом procedure Myproc; var P:PMyRecord; L:TList; begin L:=TList.Create; New(P); P.x:=5; P.y:=10; L.add(P); end; При удалении списка L достаточно ли мне просто сделать L.clear или надо пробежаться по всем записям и сделать dispose? for i:= 0 to List.count-1 do Dispose(PMyRecord(L[i])); |
06.09.2016, 12:05 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
пробежаться по всем записям. List на автомате не освобождает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
06.09.2016, 12:11 | #8 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Запомните кто намусорил, тот и убирает.
А ещё лучше, где намусорил там и убираешь. Так что Dispose вам надо делать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
06.09.2016, 12:41 | #9 | |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,834
|
Цитата:
Код:
В разработке: воспроизводственный контур ИТ
|
|
06.09.2016, 13:18 | #10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А TObjectList может и сам освобождать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
с++ проблемма в деструкторе | proef | Помощь студентам | 2 | 23.10.2013 13:19 |
Как лучше всего освобождать созданные в потоке объекты? | TwiX | Общие вопросы Delphi | 2 | 13.03.2010 21:27 |
Освобождать динамические процедуры. | Alex Cones | Общие вопросы Delphi | 4 | 28.01.2010 17:30 |
Нужно ли очишать память ... | mrandrey | Общие вопросы Delphi | 2 | 15.06.2007 20:51 |