Discussion:Malloc
Autres discussions [liste]
- Admissibilité
- Neutralité
- Droit d'auteur
- Article de qualité
- Bon article
- Lumière sur
- À faire
- Archives
- Commons
Les tailles mémoire en C (et aussi en C++) sont exprimées en chars et non en octets. C'est important dans la mesure où le langage C impose uniquement une taille minimale aux types, y compris au type char, et non une taille fixe comme en Java. De fait, certains compilateurs C utilisent des chars de 9 bits, voire davantage (cf. la constante CHAR_BIT dans limits.h).
C'est la raison pour laquelle l'expression "sizeof(char)==1" est garantie d'être toujours vraie par la norme du langage C. De fait, l'expression :
char * pointeur = malloc(20 * sizeof(char))
Pourrait s'écrire de manière équivalente :
char * pointeur = malloc(20)
Sachant que dans les deux cas, la mémoire allouée a une taille de 20 chars et non 20 octets (en fait, sur des plateformes très exotiques, ce pourrait même être 90 octets).