IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ C++ moderne et erreurs courantes

Ce ou ces sujets font partie d'une FAQ en cours d'écriture, vos retours sont les bienvenus.

Un pointeur comme une référence pointent sur (resp. fait référence à) un objet existant en mémoire. Mais il peut arriver que cet objet soit détruit tandis que le pointeur ou la référence subsistent et pointe toujours sur (resp. fait toujours référence à) son ancien emplacement mémoire. Et cette zone ainsi libérée peut être utilisée par le programme comme bon lui semble (création de nouvelles variables, nouvelle allocation mémoire…).

Dès lors, si vous continuez à utiliser à travers ce pointeur/cette référence cet emplacement mémoire, vous vous exposez à un comportement indéfini.

De tels pointeur/référence sont appelés « dangling pointer »/« dangling reference ».

(Oui, il n'est pas impossible d'observer un code qui « fonctionne » et vous donne encore les bonnes valeurs qui étaient stockées dans la zone mémoire. Mais cela reste un comportement indéfini. Cette zone mémoire ainsi libérée peut être à tout moment réutilisée pour autre chose. Un moment qui peut arriver de façon complètement aléatoire.)

À voir également

Créé le 1er janvier 2018  par Winjerome

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2021 Winjerome. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.