question du jour

question du jour - C - Programmation

Marsh Posté le 06-05-2004 à 17:06:12    

Salut,
 
on a un ch'tit boulet chez nous qui voulait allouer 44 octets, et qui pour cela a fait malloc(sizeof(44)). bon ok, c'est pas malin, mais en attendant, ça passe au compilo sans broncher.
 
le question qui me taraude, c'est que renvoie sizeof(44)?? après test, ça renvoie 4.
 
et là, je me demande pourquoi???
 
vous savez?

Reply

Marsh Posté le 06-05-2004 à 17:06:12   

Reply

Marsh Posté le 06-05-2004 à 17:09:12    

44 est un entier, la taille d'un entier est 4byte sur ton système.
 
 
 
je vais sauter le chapitre sur CHAR_BITS
 
 
malloc(44) ... ou unsigned char[44] tout simplement ...

Reply

Marsh Posté le 06-05-2004 à 17:12:00    

ben ouais mais bon, sizeof(c) ça devrait allouer un char? donc renvoyer 1, mais ça renvoie 4.  
 

Reply

Marsh Posté le 06-05-2004 à 17:13:15    

sizeof(char) == 1 par définition
 
par contre
 
'c' est de type int donc sizeof 'c' == sizeof(int)

Reply

Marsh Posté le 06-05-2004 à 17:15:19    

ok, cimer

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed