Note that there are some explanatory texts on larger screens.

plurals
  1. POCreating an 2D array using pointer/malloc, and then print it out
    text
    copied!<p>I am trying to write 2 functions, one to read the matrix (2D array) and other one to print it out. So far I have:</p> <pre><code>/* Read a matrix: allocate space, read elements, return pointer. The number of rows and columns are given by the two arguments. */ double **read_matrix(int rows, int cols){ double **mat = (double **) malloc(sizeof(double *)*rows); int i=0; for(i=0; i&lt;rows; i++){ /* Allocate array, store pointer */ mat[i] = (double *) malloc(sizeof(double)*cols); //what to do after?? return mat; } </code></pre> <p>then the print matrix function, not sure if it is correct</p> <pre><code> void print_matrix(int rows, int cols, double **mat){ for(i=0; i&lt;rows; i++){ /* Iterate of each row */ for(j=0; j&lt;cols; j++){ /* In each row, go over each col element */ printf("%f ",mat[i][j]); /* Print each row element */ } }} </code></pre> <p>and here is the main function I am using to run:</p> <pre><code>#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; double **read_matrix(int rows, int cols); void print_matrix(int rows, int cols, double **mat); void free_matrix(int rows, double **mat); int main(){ double **matrix; int rows, cols; /* First matrix */ printf("Matrix 1\n"); printf("Enter # of rows and cols: "); scanf("%d %d",&amp;rows,&amp;cols); printf("Matrix, enter %d reals: ",rows*cols); matrix = read_matrix(rows,cols); printf("Your Matrix\n"); /* Print the entered data */ print_matrix(rows,cols,matrix); free_matrix(rows, matrix); /* Free the matrix */ return 0;} </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload