Accéder à un tableau 2D en utilisant un double pointeur pour utiliser le langage C

J’essaie de trouver le maximum de toutes les valeurs dans un tableau 2D accessible à partir d’une fonction C à l’aide d’un double pointeur. Lorsque je lance le code, il se termine simplement par le renvoi de toute valeur à la fonction appelant.

J’ai essayé de changer le code pour imprimer toutes les valeurs afin de découvrir le problème et de constater qu’il n’imprimait que 1 et 2 pour les exemples de données suivants. Pour un exemple d’exécution de code, j’ai fourni ligne = 2, col = 2 et valeurs = 1,2,3,4

S’il vous plaît laissez-moi savoir pourquoi? De plus, si votre question n’est pas claire, merci de le dire. J’ai eu une journée difficile alors je ne pourrais peut-être pas expliquer mieux.

Il existe quelques ressortingctions au code: 1. Signature de fonction (int ** a, int m, int n)

#include int findMax(int **a,int m,int n){ int i,j; int max=a[0][0]; for(i=0;i<m;i++){ for(j=0;jmax){ max=a[i][j]; } //printf("\n%d",a[i][j]); } } return max; } int main(){ int arr[10][10],i,j,row,col; printf("Enter the number of rows in the masortingx"); scanf("%d",&row); printf("\nEnter the number of columns in the masortingx"); scanf("%d",&col); printf("\nEnter the elements of the masortingx"); for(i=0;i<row;i++){ for(j=0;j<col;j++){ scanf("%d",&arr[i][j]); } } printf("\nThe matrix is\n"); for(i=0;i<row;i++){ for(j=0;j<col;j++){ printf("%d ",arr[i][j]); } printf("\n"); } int *ptr1 = (int *)arr; printf("\nThe maximum element in the matrix is %d",findMax(&ptr1,row,col)); return 0; } 

    Il existe quelques ressortingctions au code: 1. Signature de fonction (int ** a, int m, int n)

    Je suppose que votre tâche consiste donc à utiliser un tableau de pointeurs, chacun d’entre eux pointant vers des allocations?

     #include #include int findMax(int **a,int m,int n){ int i,j; int max=a[0][0]; for(i=0; imax) { max=a[i][j]; } //printf("\n%d",a[i][j]); } } return max; } int main(){ int **arr; int i,j,row,col; printf("Enter the number of rows in the masortingx"); scanf("%d",&row); printf("\nEnter the number of columns in the masortingx"); scanf("%d",&col); arr = malloc(row * sizeof(int*)); if (!arr) { printf("arr not malloc'd\n"); abort(); } for(i=0;i 

    La tâche de le faire dans un seul malloc est laissée comme un exercice au lecteur.