• [^] # Re: Petites precisions

    Posté par . En réponse au journal J'adore Linus. Évalué à 3.

    Il y a confusion entre ce que la norme appelle 'null pointer constant' et 'null pointer'.

    Un 'null pointer' est une adresse invalide, dépendant de la plateforme. C'est une valeur.
    0 ou (void *)0 est une 'null pointer constant' (par définition), c'est une expression, un élément du langage.

    Ces deux trucs n'appartienent pas au même monde: un 'null pointer' c'est un truc qui existe dans le programme compilé et lors de l'éxecution, un 'null pointer constant' ça existe dans le code source.

    Le norme dit que quand tu stocke un 'null pointer constant' dans une variable de type pointeur, le compilateur utilise la valeur 'null pointer'. La norme ne donne pas la valeur d'un 'null pointer', mais elle donne la valeur de NULL: c'est une macro qui resprésente une 'null pointer constant'.