L'opérateur sizeof()
renvoie la taille de l'objet fourni en argument. Ainsi, sizeof(char)
renvoie 1 et sizeof(int)
renvoie 4 sur un PC. Mais pour la variable chaine
de type char*, sizeof(chaine)
renvoie 4 sur un PC, ce qui ne nous interesse pas, et sizeof(*chaine)
renvoie 1, à savoir la taille d'un élément pointé par chaine
. Et cet élément est bien de type char.
Le principe consiste donc à utiliser cette caractéristique de l'opérateur sizeof
pour allouer la mémoire en fonction du nombre et du type d'éléments. Voici comment allouer une chaîne de caractères :
char *chaine; chaine = malloc (N * sizeof (*chaine));
© 2005 Yves Mettier