Participer au site avec un Tip
Rechercher
 

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 :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Type size_t

La librairie stddef.h Le type ptrdiff_t


Entête à inclure

#include <stddef.h>  // <cstddef> en C++

Type size_t

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;
}
Calculer une taille avec size_t

Les résultats produits par cet exemple sont :

count == 4
sizeof values == 16
Comme 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.

Sujets connexes

La librairie stddef.h
ptrdiff_t
strlen


La librairie stddef.h Le type ptrdiff_t




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé