ExpertiDict

C · Intermediário · Inglês · Técnico

dangling pointer

/ˈdæŋ.ɡlɪŋ ˈpɔɪn.tɚ/substantivo

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ática

Exemplos

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

Veja também

Todos os termos de C