193k views
21 votes
Can you answer this question?

Can you answer this question?-example-1

1 Answer

13 votes

Answer:

To do this you'll need to use malloc to assign memory to the pointers used. You'll also need to use free to unassign that memory at the end of the program using the free. Both of these are in stdlib.h.

#include <stdlib.h>

#include <stdio.h>

#define SIZE_X 3

#define SIZE_Y 4

int main(void){

int **matrix, i, j;

// allocate the memory

matrix = (int**)malloc(SIZE_X * sizeof(int*));

for(i = 0; i < SIZE_X; i++){

matrix[i] = (int *)malloc(SIZE_Y * sizeof(int));

}

// assign the values

for(i = 0; i < SIZE_X; i++){

for(j = 0; j < SIZE_Y; j++){

matrix[i][j] = SIZE_Y * i + j + 1;

}

}

// print it out

for(i = 0; i < SIZE_X; i++){

for(j = 0; j < SIZE_X; j++){

printf("%d, %d: %d\\", i, j, matrix[i][j]);

}

}

// free the memory

for(i = 0; i < SIZE_X; i++){

free(matrix[i]);

}

free(matrix);

return 0;

}

User Alsty
by
4.6k points