130 votes

erreur : « NULL » n’était pas déclaré dans cette portée

Je reçois ce message lors de la compilation C++ sur gcc 4.3

Il apparaît et disparaît, et je ne sais pas pourquoi. Pourquoi ?

Merci.

187voto

Johannes Schaub - litb Points 256113

``n’est pas un mot clé. C’est un identifiant défini dans certains en-têtes standards. Vous pouvez inclure

De le pour avoir dans le champ d’application, y compris certains autres éléments de base, comme `` .

39voto

senarvi Points 414

GCC prend des mesures vers C ++11, qui est sans doute pourquoi vous devez maintenant inclure cstddef pour pouvoir utiliser la constante NULL . C ++11, la préférée consiste à utiliser le nouveau mot-clé nullptr , qui est implémenté dans GCC depuis la version 4.6. nullptr n’est pas implicitement convertible vers des types intégraux, donc il peut être utilisé pour lever l’ambiguïté sur un appel à une fonction qui a été prise en charge pour le pointeur et des types intégraux :

10voto

David Thornley Points 39051

NULL n’est pas un mot clé ; C’est une substitution de macro pour 0 et vient dans stddef.h ou cstddef, je crois. Vous n’avez pas #included un fichier d’en-tête approprié, donc g ++ voit NULL comme nom de variable régulier, et vous n’avez pas déclarée.

6voto

Leonardo Raele Points 351

Pour compléter les autres réponses : Si vous utilisez C ++11, utilisez , qui est un mot-clé qui désigne un pointeur void pointant sur null. (au lieu de , qui n’est pas un type de pointeur)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X