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:
- ¿Cuál es el mejor libro para aprender programación de Android desde cero?
- Quiero ser un programador / científico fenomenal. ¿Alguien puede recomendar libros / libros de texto que debería obtener a continuación? ¿Qué cosas debería estar haciendo en este momento para aumentar mi conocimiento / valor para que las organizaciones me contraten para pasantías o un trabajo?
- ¿Cuáles son los peores libros que has leído sobre programación en C?
- Cómo apegarse a un libro de programación
- ¿Cuáles son algunos buenos libros sobre refactorización / escritura de código mejor adecuados para principiantes?
#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;
}