![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 10.10.2013
Сообщений: 150
|
![]()
Почему же в любом языке? Например, в C++ такой проблемы не возникает, так как специальное ключевое слово delete сначала вызывает деструктор, а потом устанавливает ссылку на объект в NULL. Жаль, что в Делфи нет такого.
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Не устанавливает.
Но там зато есть куча других вещей для управления памятью типа RAII, smart указателей.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#13 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]() |
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 13.08.2011
Сообщений: 184
|
![]()
Нет не устанавливает, а вот в Delphi есть для этого FreeAndNil()
|
![]() |
![]() |
![]() |
#15 |
Форумчанин
Регистрация: 13.08.2011
Сообщений: 184
|
![]()
Ответ: не должно, а - может возникать AV, а может и не возникать, это на волю случая.
|
![]() |
![]() |
![]() |
#16 | |
Форумчанин
Регистрация: 10.10.2013
Сообщений: 150
|
![]() Цитата:
Кучу раз уже это обсуждалось. Проблема в том, что можно, как FreeAndNil, так и Free. Результат с Free получается не очень. Плюс, в следствии этого, невозможно контролировать, кто и как удаляет. Вопрос заключается в том, как сделать надежную защиту, об этом я также говорил. Это понятно.
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
Последний раз редактировалось cyberdev; 07.03.2018 в 19:56. |
|
![]() |
![]() |
![]() |
#17 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,891
|
![]() Цитата:
Метод Free единственно что делает, так это возвращает запрошенную ранее память у ОС (точнее у менеджера памяти, который является посредником в данной операции). FreeAndNil (имхо) придуман троешниками для троешников. Помимо всего того что делает метод Free он ещё зачем-то обнуляет конкретную ссылку на уничтожаемый объект. А нафига!? Ведь ссылок на объект может быть гораздо более одной. А обнулится только одна. А если ссылка только одна, то зачем её проверять? Последний раз редактировалось northener; 08.03.2018 в 02:14. |
|
![]() |
![]() |
![]() |
#18 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,891
|
![]() |
![]() |
![]() |
![]() |
#19 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Ну не хочет чувак в это верить. Остаётся только процитировать классика и успокоиться. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
Последний раз редактировалось min@y™; 08.03.2018 в 21:34. |
|
![]() |
![]() |
![]() |
#20 | ||
Форумчанин
Регистрация: 13.08.2011
Сообщений: 184
|
![]() Цитата:
Любой программист С++ Вам скажет что это не так. Цитата:
Зачем обнулять ссылку? Ну это то же банально: 1. Что бы можно было проверить существование объекта. 2. Что бы получить исключение при ошибочном обращении. Код:
В С++ тоже используют delete p; p = 0; когда указатель используется многократно для проверки существования объекта. Последний раз редактировалось Alex11223; 08.03.2018 в 20:06. |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверить существование объекта | cyberdev | Общие вопросы Delphi | 23 | 06.03.2018 19:56 |
JSON проверить существование значения | Dozent | Общие вопросы Delphi | 2 | 07.04.2015 18:16 |
Проверить существование значения в TStringList | Shouldercannon | Общие вопросы Delphi | 4 | 20.01.2013 15:03 |
Проверить существование папки | Stepan575 | Visual C++ | 4 | 17.12.2010 19:02 |