Locks-and-keys es una solución a los punteros colgantes en los lenguajes de programación informática .
El enfoque de bloqueos y llaves representa los punteros como pares ordenados (clave, dirección) donde la clave es un valor entero. Las variables dinámicas de montón se representan como el almacenamiento para la variable más una celda para un valor de bloqueo entero. Cuando se asigna una variable, se crea un valor de bloqueo y se coloca tanto en la celda de la variable como en la celda de clave del puntero. Cada acceso al puntero compara estos dos valores y el acceso solo se permite si los valores coinciden.
Cuando se desasigna una variable, la clave de su puntero se modifica para contener un valor diferente al de la celda de la variable. A partir de ese momento, cualquier intento de desreferenciar el puntero puede marcarse como un error. Dado que copiar un puntero también copia su valor de celda, cambiar la clave del par ordenado deshabilita de manera segura todas las copias del puntero. [1]
Véase también
Referencias
- ^ Sebesta, Robert (2012). Conceptos de lenguajes de programación (10.ª ed.). Pearson. pág. 298. ISBN 978-0-13-139531-2.