Adresse de tableau
Résolu
Nanard
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Adresse de tableau
- Tableau word - Guide
- Darkino nouvelle adresse - Guide
- Adresse mac - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
3 réponses
Salut,
quelqu'un serait t'il d'ou vien le probleme ????
Il n'y a en a pas ;-)).
tab[i][j] est l'expression allégée de *(*(tab+i)+j)
En C, les tableaux sont représentés linéairement en mémoire.
Puisque le tableau à une taille de 11 par 8, incrémenter j de 8, revient à augmenter i de 1.
Ainsi, tab[1][0] = *(*(tab+1)+0)= *(*(tab+1-1)+0+8) = *(*(tab+0)+8) = tab[8][0].
Cdlt
quelqu'un serait t'il d'ou vien le probleme ????
Il n'y a en a pas ;-)).
tab[i][j] est l'expression allégée de *(*(tab+i)+j)
En C, les tableaux sont représentés linéairement en mémoire.
Puisque le tableau à une taille de 11 par 8, incrémenter j de 8, revient à augmenter i de 1.
Ainsi, tab[1][0] = *(*(tab+1)+0)= *(*(tab+1-1)+0+8) = *(*(tab+0)+8) = tab[8][0].
Cdlt
Oui, de toi ;)
tab[N] est un tableau dont les cases vont de tab[0] à tab[N-1], ce qui fait que tab[N] n'existe pas !
Dans ton cas, c'est pareil, tu défini tab[11][8], donc tab[x][8] n'existe pas.
Bon, ensuite, il faut savoir que les tableaux 2D ne le sont pas dans les faits : toutes les cases sont les unes à coté des autres.
Donc tab[x][y] est équivalant à tab[x*8+y]
tab[N] est un tableau dont les cases vont de tab[0] à tab[N-1], ce qui fait que tab[N] n'existe pas !
Dans ton cas, c'est pareil, tu défini tab[11][8], donc tab[x][8] n'existe pas.
Bon, ensuite, il faut savoir que les tableaux 2D ne le sont pas dans les faits : toutes les cases sont les unes à coté des autres.
Donc tab[x][y] est équivalant à tab[x*8+y]
C'est pour ça que j'ai dit équivalent, et pas égale ;) :p
Je voulais juste souligner le fait qu'il y avait une opération cachée et une continuité des casses en mémoire.
Et comme tab est un tableau, je ne voulais pas trop m'avancer sur la gestion en pointeur :p (je ne saurait dire si il avait fallu mettre *(tab[x*8+y]) ou (*tab)[x*8+y] ou autre...)
Je voulais juste souligner le fait qu'il y avait une opération cachée et une continuité des casses en mémoire.
Et comme tab est un tableau, je ne voulais pas trop m'avancer sur la gestion en pointeur :p (je ne saurait dire si il avait fallu mettre *(tab[x*8+y]) ou (*tab)[x*8+y] ou autre...)
Oui, il y a du tirage d'oreille ! surtout que je t'ai expliqué dans mon message que ça allait de 0 à N-1 un tableau !
Par contre, fiddy, je ne suis pas trop d'accord avec toi sur ligne et colonne. Il y a la première dimension et la deuxième dimension, mais rien ne dit si la première doit être ligne ou colonne. ça dépend du standard adopté
Par contre, fiddy, je ne suis pas trop d'accord avec toi sur ligne et colonne. Il y a la première dimension et la deuxième dimension, mais rien ne dit si la première doit être ligne ou colonne. ça dépend du standard adopté
char tab [11][9]; ????
J'en connais un qui va se faire tirer les oreilles ;-)
Si tu veux un tableau de 9 lignes et 12 colonnes : char tab[9][12].
Si tu veux un tableau de 12 lignes et 9 colonnes : char tab[12][9].
je vais allez assayer tout ca
mais portant si on veu un tableau de 15 variable on déclare "tab [14]" vu que ya tab [0] non ?
Et elles vont rougir encore ;-))).
mais portant si on veu un tableau de 15 variable on déclare "tab [14]" vu que ya tab [0] non ?
Si tu veux un tableau de 15 cases, il faut déclarer tab[15]. La première case sera tab[0] et la quinzième (la dernière) sera tab[14]