C · Intermediário · Inglês · Técnico
dangling pointer
Ponteiro que continua guardando o endereço de um objeto que já deixou de existir, seja por causa de um free, seja porque a variável local saiu de escopo.
Onde usar
Usá-lo é comportamento indefinido e pode parecer funcionar por sorte até a memória ser reaproveitada. Zerar o ponteiro depois do free reduz o risco.
Em código
int *p = malloc(sizeof *p);
free(p);
// p agora é dangling
p = NULL; // boa práticaExemplos
After free, that variable is a dangling pointer.
Depois do free, aquela variável é um dangling pointer.
Returning the address of a local gives you a dangling pointer.
Devolver o endereço de uma local te dá um dangling pointer.
Cuidado
Confundir com ponteiro nulo: o dangling parece válido e não pode ser detectado comparando com NULL.
Sinônimos
ponteiro pendente
Antônimos
ponteiro nulo