Maison > développement back-end > C++ > Que se passe-t-il lorsque vous déréférencez un pointeur NULL vers une référence en C ?

Que se passe-t-il lorsque vous déréférencez un pointeur NULL vers une référence en C ?

Mary-Kate Olsen
Libérer: 2024-12-15 01:24:10
original
242 Les gens l'ont consulté

What Happens When You Dereference a NULL Pointer to a Reference in C  ?

Déréférencement de pointeurs NULL pour les références

La norme C traite explicitement du comportement de déréférencement d'un pointeur NULL pour obtenir une référence. Cette pratique est considérée comme un comportement non défini.

Dans l'exemple fourni :

int* ptr = NULL;
int& ref = *ptr;
int* ptr2 = &ref;
Copier après la connexion

La tentative de déréférencement du pointeur NULL ptr est considérée comme un comportement non défini. D'après la norme (8.3.2/4 "Références") :

Remarque : en particulier, une référence nulle ne peut pas exister dans un programme bien défini, car la seule façon de créer une telle référence reviendrait à le lier à « l'objet » obtenu en déréférençant un pointeur nul, ce qui provoque un comportement indéfini.

Par conséquent, attribuer une référence à l'objet déréférencé Le pointeur NULL n'est pas valide et le comportement n'est pas bien défini. Le résultat de l'utilisation de ptr2, qui pointe vers la référence obtenue à partir du pointeur NULL déréférencé, est également indéfini.

Une exception à l'interdiction de déréférencer les pointeurs NULL concerne l'utilisation avec l'opérateur sizeof. Dans ce contexte, le pointeur n'est pas réellement évalué, donc son déréférencement ne provoque pas de comportement indéfini. Cependant, cette exception est limitée à la taille de l'opérateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal