Зарегистрироваться
Восстановить пароль
FAQ по входу

Becker D.S. Работа с указателями в DELPHI. Как избежать использования неактуальных указателей

  • Файл формата zip
  • размером 12,30 КБ
  • содержит документ формата doc
  • Добавлен пользователем , дата добавления неизвестна
  • Описание отредактировано
Becker D.S. Работа с указателями в DELPHI. Как избежать использования неактуальных указателей
Я создал простой модуль и разработал несколько простых методов, помогающих избежать использования неактуальных (в оригинале было "stale" - черствый, несвежий) указателей. Я настоятельно рекомендую добавить во все модули, содержащие указатели или объектные переменные секцию инициализации ('initialization') и установить все указатели (объектные переменные это те же реальные указатели) в nil. Что это даст: прежде чем хотя бы один указатель будет использован, он обязательно будет проверен, освобожден и установлен в nil. Затем, после освобождения указателей, просто установите их в nil. Мой модуль содержит функцию nilify() для установки указателей в nil, а также специальные версии методов free, dispose, и freemem (названные nilxxx) для проверки значения nil перед освобождением памяти, и установления указателя в nil сразу после того, как он был освобожден. Я также включил специальную версию assigned(), названную isnil(), которая вместо переменного (var) параметра получает константу, которую вы можете затем использовать в своих свойствах, и т.п.
Этот модуль, конечно, ничего не делает с vcl, но тем не менее вы можете иметь неактуальные указатели и с vcl. Строгое соблюдение функций модуля сделает вас уверенным в отсутствии ошибок при работе с указателями. Единственное условие использования модуля - в случае любых изменений кода с вашей стороны или наличия каких-либо замечаний или предложений пришлите их пожалуйста мне. Пользуйтесь на здоровье!
  • Чтобы скачать этот файл зарегистрируйтесь и/или войдите на сайт используя форму сверху.
  • Регистрация