-
pointeurs
Bonjour,
je cherche une confirmation pour la chose suivante :
soit un tableau de 5 pointeurs sur une structure S1 : struct s1 *t[5]
t représente l'adresse de tout le tableau, mais aussi l'adresse de t[0] c'est à dire &t[0] ?
&t[3] représente l'adresse du 4ième élément, qui est différent de l'adresse de t ou &t[0]?
-
&t[0] equivaut à t, c'est effectivement l'adresse du début de ton tableau de pointeur, donc l'adresse du premier élément.
&t[3] est effectivement différent de t, c'est égal à t+3
-
Petite erreur. struct s1 t[5] est un tableau de 5 structure de type s1. Ce que tu as marqué (struct s1 *t[5] ) est un pointeur sur un tableau.
-
Non, c'est bien un tableau de pointeurs car [] est plus prioritaire que *.
t seul n'est pas une adresse, mais représente tout le tableau. Sinon sizeof ne marcherait pas.
Par contre, t se décompose en &t[0] dès qu'il subit un autre opérateur que sizeof ou & (direct).
J'ai parlé des tableaux ici aussi: http://www.developpez.net/forums/viewtopic.php?t=46988