La Faq C sur les tableaux montre que pour passer un tableau a une fonction on peut utiliser un pointeur en paramètre (montrant explicitement la conversion du tableau t vers un pointeur).
Comme c'est un tableau qui est passé, on aurai aussi pu écrire. (peut être a placer dans la faq ?)
* Dans le cas où l'on passe un pointeur de pointeurs, est on alors obligé d'utiliser la méthode montrée dans la faq avec ptr[M * j + i] <=> t[j][i] ou bien existe il un moyen d'avoir la syntaxe crochet (à mon avis non car on passe un pointeur, mais je demande quand même) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void initialiser_tab_2(int ptr[][4], size_t N, size_t M) { size_t j, i; for(j = 0; j < N; j++) { for(i = 0; i < M; i++) { ptr[j][i]= (int)j; } } }
*Comment adapter expression ptr[M * j + i] pour un tableau (ou pointeurs) de 3 à N dimensions ? Existe il une 'suite logique' pour déduire facilement qui multiplie quoi ?
Partager