Bonjour à tous, je suis entrain d'approfondir ma connaissances sur les pointeurs et je lisais un tuto sur le site ou je trouve ceci :
Pour bien comprendre j'ai fais des tests sur feuilles mais je coince, je vous explique
Code : Sélectionner tout - Visualiser dans une fenêtre à part t[i][j] = *(p + N*i + j) /* ou encore p[N*i + j] */
Avec cette déclaration :
Cela créer 10 tableaux de 3 int si j'ai bien compris soit 10 lignes 3 colonnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int t[10][3] int *p
Avec comme dis dans le tuto les équivalences suivantes :
t <-> p
t+1 <-> p+3
...
Si je veux accéder àJe me retrouve donc en p+5
Code : Sélectionner tout - Visualiser dans une fenêtre à part t[1][2]
Mais si je fais le calcul avec :Soit *(p+ 10*1+2) je me retrouve avec 12.
Code : Sélectionner tout - Visualiser dans une fenêtre à part t[i][j] = *(p + N*i + j)
Est-ce normal je devrais pas plutôt retrouver 5 ?
Peut-être ai-je aussi mal compris quelque chose.
Merci de votre aide.
Partager