Bonjour,
Comment passe t-on un tableau de deux dimensions à une fonction?
Je veux utiliser le passage par pointeur, car les dimensions ne sont pas connues.
Merci d'avance.
Bonjour,
Comment passe t-on un tableau de deux dimensions à une fonction?
Je veux utiliser le passage par pointeur, car les dimensions ne sont pas connues.
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void fill_t(int * t, size_t dim1, size_t dim2); int main() { int t[5][50]; fill_t((int *)t, 5, 10); return 0; } void fill_t(int * t, size_t dim1, size_t dim2) { for(size_t i = 0; i < dim1; i++) for(size_t j = 0;j < dim2; j++) // t[i][j] = -1; t[i * dim2 + j] = -1; }
Merci pour la réponse !
pouvez vous m'expliquez pourquoi on fait le casting (int*)?
int t[5][10]; aurait également pu s'écrire :
Le cast est requis car un T10 [5] peut être converti sans cast en T10 * et évidemment en void * mais un T10 * ne peut pas être converti sans cast en int *, c'est tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 typedef int T10[10]; T10 t[5];
Partager