./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.