Je dois également faire cela pour persister les opérations sur la matrice. Cela signifie-t-il qu'il doit être adopté par référence?
Cela suffira-t-il ?
void operate_on_matrix(char matrix[][20]);
Je dois également faire cela pour persister les opérations sur la matrice. Cela signifie-t-il qu'il doit être adopté par référence?
Cela suffira-t-il ?
void operate_on_matrix(char matrix[][20]);
La technique la plus simple pour le C et le C++ est la suivante : passez un tableau 2D comme un tableau 1D, puis utilisez-le en tant que 2D dans la fonction.
#include <stdio.h>
void func(int row, int col, int* matrix){
int i, j;
for(i=0; i<row; i++){
for(j=0; j<col; j++){
printf("%d ", *(matrix + i*col + j)); // or better: printf("%d ", *matrix++);
}
printf("\n");
}
}
int main(){
int matrix[2][3] = { {0, 1, 2}, {3, 4, 5} };
func(2, 3, matrix[0]);
return 0;
}
En interne, quel que soit le nombre de dimensions d'un tableau, C/C++ conserve toujours un tableau 1D. Et donc, nous pouvons passer n'importe quel tableau multidimensionnel comme celui-ci.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.