#include <stddef.h> // <cstddef> en C++
Le type size_t est un type entier non signé utilisé pour représenter une taille mémoire ou un nombre d'éléments. C'est le type
retourné par l'opérateur sizeof. On le retrouve aussi dans de nombreuses fonctions standards, comme
malloc, memcpy ou
strlen.
L'exemple suivant calcule le nombre d'éléments présents dans un tableau à partir de sa taille totale.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <stddef.h> #include <stdio.h> #include <stdlib.h> int main() { int values[] = { 10, 20, 30, 40 }; size_t count = sizeof values / sizeof values[0]; printf( "count == %lu\n", (unsigned long) count ); printf( "sizeof values == %lu\n", (unsigned long) sizeof values ); return EXIT_SUCCESS; } |
Les résultats produits par cet exemple sont :
count == 4 sizeof values == 16
size_t est non signé, il faut éviter les boucles qui décrémentent naïvement une variable de ce type jusqu'à zéro.
Quand un entier non signé passe sous zéro, il reboucle sur une très grande valeur.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :