NULL??? Mais C deja kekchoz!

SuperCed

Membre expert
Club iGen
20 Juin 2001
1 353
72
46
superced.rb38.eu
J'ai besoin de trouver une equivalence de NULL en C ou C++. Je me demandais si le '\0' pourrait convenir??? Sinon, y-a-t-il une valeur hexadecimale qui corresponde? Du genre 0x0???
 
Pour déclarer un pointeur null tu fais comme ça:

int *pi;

pi = NULL

donc pi ne pointe sur rien

Enfin c'est comme ça que c'est marqué dans mon cours de C...
 
Mais je veux pas creer un pointeur NULL, je veux savoir la valeur de NULL. Mais je pense qu'il doit s'agir de 0x0.
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par Simon:
Pour déclarer un pointeur null tu fais comme ça:

int *pi;

pi = NULL

donc pi ne pointe sur rien

Enfin c'est comme ça que c'est marqué dans mon cours de C...
<HR></BLOCKQUOTE>

mais tes cours de C on sait ce qu'ils valent simon ....
grin.gif
grin.gif


A part ca pour NULL:
c'est une constante prédéfinie dans stdio.h...
Si tu cherches à quoi ca correspond c'est tout simplement la constante entière... "0"
grin.gif


Mais je te conseille d'utiliser NULL c'est quand même plus lisible.. enfin c'est toi qui sais...

et en effet la valeur hexadécimale de 0 c'est 0x0...

bye!

[13 juillet 2001 : message édité par Jehoshaphat]

[13 juillet 2001 : message édité par Jehoshaphat]
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR> mais tes cours de C on sait ce qu'ils valent simon ....
<HR></BLOCKQUOTE>

Ouais alors là il ne va pas falloir commencer à critiquer mon prof que, comme tu le sais je respecter énormément
rolleyes.gif
, alors attention parce que pour la petite histoire je vais faire un peu ma frime mais j'ai quand même fait 5 comme note finale alors je ne vais pas me plaindre
wink.gif
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par Simon:


Ouais alors là il ne va pas falloir commencer à critiquer mon prof que, comme tu le sais je respecter énormément
rolleyes.gif
, alors attention parce que pour la petite histoire je vais faire un peu ma frime mais j'ai quand même fait 5 comme note finale alors je ne vais pas me plaindre
wink.gif
<HR></BLOCKQUOTE>

tss...
rolleyes.gif


ben moi j'ai fais 17.5 points sur 18 a mon beau programme de simulation de particules alors gna gna gnere..
grin.gif
grin.gif
 
Aaaah, les NULL, nil, et autres 0x0...

Tout le monde sait que NULL, c'est 0. ok.
En fait, en C, C++, objc et consorts, la terminologie pour la valeur zéro est fonction du type de la variable qui va l'utiliser. C'est à dire :

'\0' = zéro pour un type char
0 = zéro pour un type numérique simple (int ou long)
0.0 pour un float ou un double
NULL pour un type pointeur.

Tu vas dire : "il me prend pour une bille, l'animal, parce que ca, je le sais deja et en plus, c'est pas ma quesion". Oui, mais c'est ma réponse. :-)

En fait, NULL est défini comme étant :
(void *) 0L

c'est à dire la valeur zéro codée sur un long et convertie en pointeur indéfini.

En fait, c'est la méthode officielle de description de NULL, puisque par définition en C "toute valeur d'un type donné devant etre affectée à une variable d'un autre type doit faire l'objet d'un cast dans le type récepteur" (phrase de moi-meme à moi-meme à l'époque ou j'avais des warnings de partout sur mon ATARI ST :-).

Comme tu veux affecter la valeur zéro à un pointeur, tu dois passer par un cast de type pointeur.

Ca, c'est la terminologie officielle. Maintenant, en fonction des systemes, NULL est défini de facon propre "(void*) 0L" ou de facon sale "0". FreeBSD n'est pas le + propre de tous, il n'y a qu'à faire un grep de NULL dans /usr/include sur tous les headers pour s'en rendre compte......

j'espère ke ca repond un chouillat à ta question.
bye.