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.
Le type ptrdiff_t est un type entier signé prévu pour stocker le résultat de la soustraction de deux pointeurs. Cette opération
n'a de sens que si les deux pointeurs désignent des éléments du même tableau, ou la position juste après le dernier élément de ce tableau.
L'exemple suivant calcule la distance entre deux éléments d'un même tableau.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
int values[] = { 10, 20, 30, 40, 50 };
int * first = &values[1];
int * second = &values[4];
ptrdiff_t distance = second - first;
printf( "distance == %ld\n", (long) distance );
return EXIT_SUCCESS;
}
Calculer une différence de pointeurs
Les résultats produits par cet exemple sont :
distance == 3
La soustraction de pointeurs provenant de deux tableaux différents produit un comportement indéfini. Le type ptrdiff_t ne rend
pas cette opération valide : il fournit seulement le bon type pour conserver un résultat valide.
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 :