Un puntero colgante, o puntero colgante, en lenguajes de programación, apunta a un puntero que se refiere a un área de memoria que ya no es válida, porque ya ha sido liberada, o porque el puntero se usa fuera del contexto de la existencia de la variable a la que se refiere. Dado que el sistema operativo puede reubicar y reutilizar la ubicación de la memoria de datos, el uso de un puntero colgando efectos, impredecibles, que van desde fallas de segmentación (sistemas UNIX) o falla de protección general (sistemas Windows), lo que resulta en la terminación de la aplicación que causó el error, la corrupción de los datos en la memoria.
En lenguajes de programación como C, que requieren que el programador se encargue de liberar memoria dinámicamente asignada, los punteros, como todas las demás variables, continúan conteniendo el último valor que se les asignó, incluso cuando este valor ya no es válido. Por ejemplo, cuando se libera la memoria a la que apunta un puntero determinado, ya no es posible usarla sin reasignarla a otra área de memoria. Un ejemplo se da a continuación: otra causa de puntero colgante, como se mencionó anteriormente, puede ser el uso de un puntero que se refiere a una variable fuera del contexto de existencia (o alcance) de este último. Por ejemplo: un último ejemplo muestra otro error (en realidad muy similar al anterior) que con frecuencia causa problemas de puntero pendientes, es decir, devolver al final de una función, la dirección de una variable local, que ya no es válida fuera de la propia función: .