Un puntero colgante o referencia colgante ( es decir , puntero colgante, puntero salvaje , referencia colgante ) es un puntero que no apunta a un objeto válido del tipo correspondiente. Este es un caso especial de una violación de seguridad de la memoria.
Los punteros colgantes ocurren cuando un objeto se elimina o se mueve sin cambiar el valor del puntero a nulo, de modo que el puntero todavía apunta a la ubicación de la memoria donde se almacenaron los datos previamente. Dado que el sistema puede reasignar la memoria previamente liberada (incluso a otro proceso), un puntero roto puede provocar un comportamiento impredecible del programa. Cuando un programa escribe datos en la memoria utilizando un puntero de este tipo, los datos pueden corromperse silenciosamente, lo que genera errores sutiles que son muy difíciles de encontrar.
Este tipo de error es muy peligroso y, junto con las fugas de memoria, ocurre con bastante frecuencia.
Varios idiomas reducen la posibilidad de punteros colgantes, en particular mediante el uso de la recolección automática de elementos no utilizados [1] u otros métodos [2] para mejorar la seguridad de acceso a la memoria .