Dangling pointer

Comment traduire dangling pointer en français ?

Un dangling pointer, c’est un pointeur qui pointe sur une zone mémoire qui n’est pas allouée pour ce sur quoi pointe le pointeur.

Photo réelle d’un dangling pointer

Les raisons sont diverses. Par exemple, la mémoire vers laquelle pointe le pointeur a été désallouée. Cela arrive facilement en utilisant un pointeur sur un objet dont la durée de vie est inférieure à la durée de vie du pointeur référençant l’objet.

Ci-dessous, un exemple insensé en C.

int * p = 0;
{
  int i = 1;
  p = &i;
  *p = 2; /* OK */
}
*p = 3; /* oups, i n'existe plus ! */

Bref, le vrai problème, ce n’est pas de ne pas avoir de dangling pointer. Mes programmes n’en ont jamais car j’utilise une huile essentielle adaptée pour les mains, qui me permet de coder sans bug.

Le vrai problème, ce n’est pas de savoir ce qu’est un dangling pointer, puisqu’on en a jamais (vous aussi, l’huile essentielle ?).

Le vrai problème, c’est de traduire en français l’expression dangling pointer. Je vais donc vous révéler, en exclusivité, la seule et unique vraie traduction de dangling pointer.

D’abord, ce n’est pas :

  • Pointeur désalloué : incorrect, c’est la zone pointée qui est désallouée ;
  • Pointeur déréférencé : incorrect, c’est l’action d’obtenir la chose pointée (via * ou ->) ;
  • Pointeur pendant : non, c’est trop moche ;
  • Pointeur perdu : non, on sait où il est.

La traduction de dangling pointer est donc, c’est officiel : pointeur errant.

Sus aux pointeurs errants !

Pour s’en rappeler, c’est simple :

Pointeur errant ? Erreur pointant !
(le bout de son nez)

Mise à jour du 3 juin 2018 : en cherchant mieux, j’ai trouvé une utilisation de pointeur ballant, qui me paraît à la fois plus fidèle au sens d’origine, et aussi plus riche, cumulant plusieurs acceptions du mot. En revanche, la contrepèterie est nulle :

Pointeur ballant ? Bailleur pontant !
(à la recherche de votre hémoglobine)

Leave a Reply

Your email address will not be published. Required fields are marked *