Créer un tableau 2D en utilisant pointeur / malloc, puis l’imprimer

J’essaye d’écrire 2 fonctions, une pour lire la masortingce (tableau 2D) et une autre pour l’imprimer. Jusqu’à présent j’ai:

/* Read a masortingx: allocate space, read elements, return pointer. The number of rows and columns are given by the two arguments. */ double **read_masortingx(int rows, int cols){ double **mat = (double **) malloc(sizeof(double *)*rows); int i=0; for(i=0; i<rows; i++){ /* Allocate array, store pointer */ mat[i] = (double *) malloc(sizeof(double)*cols); //what to do after?? return mat; } 

alors la fonction de masortingce d’impression, pas sûr si c’est correct

  void print_masortingx(int rows, int cols, double **mat){ for(i=0; i<rows; i++){ /* Iterate of each row */ for(j=0; j<cols; j++){ /* In each row, go over each col element */ printf("%f ",mat[i][j]); /* Print each row element */ } }} 

et voici la fonction principale que j’utilise pour exécuter:

 #include  #include  double **read_masortingx(int rows, int cols); void print_masortingx(int rows, int cols, double **mat); void free_masortingx(int rows, double **mat); int main(){ double **masortingx; int rows, cols; /* First masortingx */ printf("Masortingx 1\n"); printf("Enter # of rows and cols: "); scanf("%d %d",&rows,&cols); printf("Masortingx, enter %d reals: ",rows*cols); masortingx = read_masortingx(rows,cols); printf("Your Masortingx\n"); /* Print the entered data */ print_masortingx(rows,cols,masortingx); free_masortingx(rows, masortingx); /* Free the masortingx */ return 0;} 

    Essaye celui-là. peut être utile pour vous.

     #include  #include  double **read_masortingx(int rows, int cols); void print_masortingx(int rows, int cols, double **mat); void free_masortingx(int rows, double **mat); double **read_masortingx(int rows, int cols){ double **mat = (double **) malloc(sizeof(double *)*rows); int i=0,j=0; for(i=0; i 

    Exécution:

     :~$ gcc exam.c :~$ ./a.out Masortingx 1 Enter # of rows and cols: 3 4 Masortingx, enter 12 reals: 1 2 3 4 5 6 7 8 9 9 0 1 Your Masortingx 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 9.000000 0.000000 1.000000