Замки и ключи
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2017 г. ) |
Замки и ключи — это решение проблемы висящих указателей в языках программирования .
Подход «замки и ключи» представляет указатели в виде упорядоченных пар (ключ, адрес), где ключ является целочисленным значением. Динамические переменные кучи представлены как хранилище для переменной плюс ячейка для целочисленного значения блокировки. При выделении переменной создается значение блокировки , которое помещается как в ячейку переменной, так и в ключевую ячейку указателя. При каждом доступе к указателю сравниваются эти два значения, и доступ разрешен только в том случае, если значения совпадают.
Когда переменная освобождается, ключ ее указателя модифицируется и содержит значение, отличное от значения ячейки переменной. С этого момента любая попытка разыменовать указатель может быть помечена как ошибка. Поскольку копирование указателя также копирует значение его ячейки, изменение ключа упорядоченной пары безопасно отключает все копии указателя. [ 1 ]
См. также
[ редактировать ]
Ссылки
[ редактировать ]- ^ Себеста, Роберт (2012). Концепции языков программирования (10-е изд.). Пирсон. п. 298. ИСБН 0-13-139531-9 .