Замки и ключи - Locks-and-keys

Замки и ключи это решение висячие указатели в компьютере языки программирования.

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

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

Смотрите также


Рекомендации

  1. ^ Себеста, Роберт (2012). Концепции языков программирования (10-е изд.). Пирсон. п. 298. ISBN  0-13-139531-9.