¿Qué es la referencia colgante?

Una referencia colgante es una referencia a un objeto que ya no existe.

La referencia colgante surge durante la destrucción del objeto, cuando un objeto que tiene una referencia entrante se elimina o se desasigna, sin modificar el valor del puntero, de modo que el puntero todavía apunta a la ubicación de memoria de la memoria desasignada. Como el sistema puede reasignar la memoria previamente liberada a otro proceso, si el programa original desreferencia el (ahora) puntero colgante, puede producirse un comportamiento impredecible, ya que la memoria ahora puede contener datos completamente diferentes

Ejemplo 1:

#include

func nulo ()
{
char * dp = (char *) malloc (A_CONST);
/ * … * /
libre (dp); / * dp ahora se convierte en un puntero colgante * /
dp = NULL; / * dp ya no cuelga * /
/ * … * /
}

Ejemplo 2

int * func (nulo)
{
int num = 1234;
/ * … * /
volver & num;
}

Cuando tiene un puntero (o referencia) y apunta a una ubicación desde donde se eliminan los datos.

Esta es una referencia pendiente.