Это не официальный сайт wikipedia.org 01.01.2023

Висячий указатель — Википедия

Висячий указатель

Висячий указатель или висячая ссылка (англ. Dangling pointer, wild pointer, dangling reference) — указатель, не указывающий на допустимый объект соответствующего типа. Это особый случай нарушения безопасности памяти.

Dangling Pointer.pdf

Висячие указатели возникают тогда, когда объект удалён или перемещён без изменения значения указателя на нулевое, так что указатель все ещё указывает на область памяти, где ранее хранились данные. Поскольку система может перераспределить ранее освобождённую память (в том числе в другой процесс), то оборванный указатель может привести к непредсказуемому поведению программы. В случае, когда программа записывает данные в память, используя такой указатель, данные могут незаметно разрушаться, что приводит к тонким ошибкам, которые очень трудно найти.

Этот вид ошибок очень опасен, и наряду с утечками памяти случается довольно часто.

Ряд языков снижают вероятность появления висячих указателей, в частности, используя автоматическую сборку мусора[1] или иными методами[2], повышая безопасность доступа к памяти.

ПримечанияПравить

  1. Automatic Reference Counting on iOS | Dr Dobb’s  (неопр.). Дата обращения: 17 сентября 2016. Архивировано из оригинала 16 августа 2012 года.
  2. https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html Архивная копия от 30 апреля 2018 на Wayback Machine « Rust. All the core language cares about .. Dereferencing null or dangling pointers»

СсылкиПравить