|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.06.2019, 13:11 | #1 |
Пользователь
Регистрация: 01.12.2015
Сообщений: 82
|
Когда нужно память освобождать ?
Всем привет, часто сталкиваюсь при работе с JSON с такой проблемой
Код:
В моем понимании, если есть create должны и освободить по завершении операции. Или это не так? |
22.06.2019, 13:23 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Ну вы то операцию не завершили. Вы только отдали объект кому-то попользоваться. Читайте доки очищает ли AuthorizLogArry свои элементы сам или потом вам надо чистить.
|
22.06.2019, 13:45 | #3 | |
Пользователь
Регистрация: 01.12.2015
Сообщений: 82
|
Цитата:
Какая разница JSObj что дальше будет с отданой информацией )? |
|
22.06.2019, 14:01 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
|
22.06.2019, 14:01 | #5 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Практика такая где выделили там и освобождаем. Иногда это тело в функции. Но иногда объекты живут дольше и это уже не тело функции, а тело класса или даже весь юнит. Класс TMyClass1 создал объект он его и уничтожает. Или ваш Юнит.
Это не строгие правила, а правила хорошего тона. Известные как RAII. Но оно спасает от многих ошибок. У вашей библиотеке JSON кривая архитектура. Цитата:
Разумеется когда AuthorizLogArry захочет обратиться к JSObj он по пробует перейти по ссылке он попадает в молоко. Так как данные вы уже освободили во finally. Поэтому в вашем случае вы должны освобождать память когда он вам будет не нужен в AuthorizLogArry. Тогда вы его изъимите из AuthorizLogArry, а так же перед удалением AuthorizLogArry.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
22.06.2019, 14:31 | #6 | |
Пользователь
Регистрация: 01.12.2015
Сообщений: 82
|
Цитата:
Я хотел сделать что то типа записи логов в массив JSON, в моем случае код приведенный выше работает, могут ли возникнуть какие то проблемы в дальнейшем? Получается при каждой новой записи данных в лог вызывается Код:
Последний раз редактировалось niockasd; 22.06.2019 в 14:33. |
|
22.06.2019, 14:57 | #7 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
нужно ли освобождать память в деструкторе? | Des80 | Общие вопросы Delphi | 10 | 06.09.2016 13:21 |
Когда нужно использовать ООП? | leklerk | Общие вопросы по программированию, компьютерный форум | 49 | 01.06.2012 09:09 |
Когда нужно присваивать.. Writeln(Sum:8:4) ? | Erlotaza | Общие вопросы Delphi | 1 | 09.03.2012 11:25 |
masm32 подменяет JZ на JE тогда, когда это совсем не нужно | notHaker | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 12.07.2011 17:57 |
Освобождать динамические процедуры. | Alex Cones | Общие вопросы Delphi | 4 | 28.01.2010 17:30 |