int func_2(int *tab) { putchar(tab[0]); //calcul d'index a faire tab[a][b] = tab[a*dimensionIndex1+b] } int func_1() { int tab[4][4]; tab[0][0] = 4; func_2((int*)tab); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionint display_tab(int **tab, int width, int height) { int i = 0; int j = 0; for (i = 0; i < width; ++i) for (j = 0; j < height; ++j) printf("tab[%i][%i] = %i\n", i, j, tab[i][j]); } int main() { int i = 0; int** tab = NULL; int width = 4; int height = 3; tab = malloc(width * sizeof (int*)); for (i = 0; i < width; ++i) { tab[i] = malloc(height * sizeof (int)); for (j = 0; j < width; ++j) tab[i][j] = i + j; } display_tab(tab, width, height); }
Les dimensions ne sont pas à indiquer, elles sont déduites :
#include template void fonction(int tab[I][J]) // c'est bien "int tab[I][J]", et non "int[I][J] tab" { for(int i = 0; i < I; i++) for(int j = 0; j < J; j++) std::cout << tab[i][j] << std::endl; } int main() { int tab[3][4] = { {1, 2, 3, 4}, {10, 20, 30, 40}, {100, 200, 300, 400}, }; fonction<3, 4>(tab); // OK fonction(tab); // Ne compile pas return 0; }
g++ -W -Wall -Wabi -ansi test.cc -o test
test.cc: In function ‘int main()’:
test.cc:21: erreur: no matching function for call to ‘fonction(int [3][4])’