passage de tableau 2D a une fonction
voila, j'ai un pb de comprehension de code.
Immaginon que l'on declare un tableau 2D de char.
Imaginons une fonction qui prend un pointeur de char. cette fonction doit copier une chaine dans ce tableau 2D passe en parametre. Et la, je ne comprend plus:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| main()
{
char tableau [100][33];
fontion(tableau);
}
//definition de la fonction
void fonction (char *tab)
{
for (int i ; i<x ; i++)
strcpy((tab+i*33),"chaine");
} |
que veut dire le *33 et dans quelle partie du tableau ca ecrit?
merci d'avance
Re: passage de tableau 2D a une fonction
Citation:
Envoyé par watashinoitadakimasu
que veut dire le *33 et dans quelle partie du tableau ca ecrit?
Ca veut dire que tu multiplies i par 33 !
En fait dans ta fonction, tab est l'adresse du debut du tableau. Tu copies "chaine" dans les 100 (euh ou est defini x?) cases (qui sont des chaines de 33 caracteres) du tableau.
En resume:
tab est l'adresse du tableau, et aussi de la premiere chaine du tableau. tab+33 est l'adresse de la deuxieme chaine du tableau...
En fait tu peux voir tableau comme une "matrice" mais dont toutes les colonnes sont a la suite en memoire. Et donc tu passe d'une colonne a l'autre en ajoutant la taille de la ligne (33 ici).