Puntero, swizzling


En informática , la combinación de punteros es la conversión de referencias basadas en el nombre o la posición en referencias directas de puntero ( direcciones de memoria ). Por lo general, se realiza durante la deserialización o la carga de un objeto reubicable desde un archivo de disco, como un archivo ejecutable o una estructura de datos basada en punteros .

La operación inversa, que reemplaza los punteros de la memoria con símbolos o posiciones independientes de la posición, a veces se denomina desvanecimiento y se realiza durante la serialización (guardado).

Pero guardar la lista en un archivo y luego volver a cargarla (en la mayoría de los sistemas operativos) romperá todos los enlaces y hará que la lista sea inútil porque los nodos casi nunca se cargarán en las mismas ubicaciones de memoria. Una forma útil de guardar y recuperar la lista es asignar un número de identificación único a cada nodo y luego desencadenar los punteros convirtiéndolos en un campo que indica el número de identificación del siguiente nodo:

Registros como estos se pueden guardar en un archivo en cualquier orden y volver a cargar sin romper la lista. Otras opciones incluyen guardar el desplazamiento del archivo del siguiente nodo o un número que indique su posición en la secuencia de registros guardados.

Después de cargar dicha lista, encontrar un nodo en función de su número es engorroso e ineficiente (búsqueda en serie). Atravesar la lista fue muy rápido con los punteros "siguientes" originales. Para volver a convertir la lista a su forma original, o mover los punteros, es necesario encontrar la dirección de cada nodo y convertir los campos id_number_of_next_node nuevamente en punteros directos al nodo correcto.

Existe una cantidad potencialmente ilimitada de formas en las que se puede eliminar un puntero, pero algunas de las más populares incluyen: