« Programmation C/Pointeurs » : différence entre les versions

Contenu supprimé Contenu ajouté
DCimarosa (discussion | contributions)
Ligne 77 :
Normalement un tableau de N cases permet d'être itéré sur les indices allant de 0 à N - 1, inclusivement. L'expression <code>&tableau[N]</code> fait référence la case mémoire non allouée immédiatement après le plus grand indice, donc potentiellement source de problème. Toutefois, par exception pour le premier indice après le plus grand, C garantit que le résultat de l'expression soit bien défini. Bien sûr, il ne faut pas déréférencer ce pointeur.
 
À noter qu'à l'issue de la boucle, <code>p</code> pointera sur la N+1ème case du tableau, donc hors de l'espace alloué. Le C autorise tout à fait ce genre de pratique, il faut juste faire attention à ne pas déférencerdéréférencer le pointeur à cet endroit.
 
<li>Soustraction de deux pointeurs de même type (combien d'objet de type ''T'' y a t-il entre les deux pointeurs) : le résultat est donc un '''entier''', de type <code>ptrdiff_t</code>.