1485Fermer1487
RHJPPLe 22/05/2010 à 03:39
./1484 1/ C'est faux. Un char fait toujours un char, mais par forcement un octet. sizeof retourne la taille en nombre de char donc renvoie toujours 1 pour sizeof(char).
malloc prend en entrée une taille en nombre de char. La confusion entre les deux, comme dans la plupart des documentations (./1471 par exemple) vient de la mauvaise traduction de byte en octet. Un char correspond à un byte, mais pas forcément à un octet. Un byte est un groupe d'un certain nombre de bits qui peut être différent de 8, sa traduction en octet est souvent une erreur. Le mot octet existe aussi en anglais...

Folco, si tu veux utiliser des codages sur plusieurs octets par caractère, tu peux prendre un codage à taille fixe (UTF-32 par exemple) ou à taille variable (UTF-8), mais dans ce cas, il te sera impossible de déduire la taille en mémoire de la chaine uniquement à partir de son nombre de caractères.