Завислі вказівники

(Перенаправлено з Висячі покажчики)

Завислі вказівники, дикі вказівники (англ. dangling pointers, wild pointers) в програмуванні — це вказівники, що не вказують на допустимий об'єкт відповідного типу. Це спеціальні випадки порушення безпеки пам'яті.

Завислі вказівники виникають тоді, коли об'єкт видалено або переміщено без зміни значення вказівника на нульове, так що вказівник все ще вказує на ділянку пам'яті непереміщених даних. Оскільки система може перерозподілити раніше звільнену пам'ять (зокрема в інший процес), то обірваний вказівник може призвести до непередбачуваної поведінки програми. У разі, коли програма записує дані в пам'ять, використовуючи такий вказівник, дані можуть непомітно руйнуватися, що призводить до тонких помилок, які надзвичайно важко знайти.

Дикі вказівники виникають, коли вказівник використовується до ініціалізації у відомий стан, що можливо в деяких мовах програмування. Вони такі ж непередбачувані як завислі, проте вони мають менше шансів залишитися непоміченими.

Цей вид помилок є дуже небезпечним і поруч з витоками пам'яті трапляється досить часто.

Низка мов програмування знижують імовірність появи завислих вказівників, використовуючи автоматичне збирання сміття[1] та інші методи[2], підвищуючи в цей спосіб безпеку доступу до пам'яті.

Див. також ред.

Посилання ред.

Примітки ред.

  1. Automatic Reference Counting on iOS | Dr Dobb’s. Архів оригіналу за 16 серпня 2012. Процитовано 30 квітня 2018.
  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»