-1
Я хочу создать динамический массив 2d и присвоить значения, и я не могу понять свою ошибку.Как назначить значения динамическому массиву 2d в C
Мой код:
#include <stdio.h>
#include <stdlib.h>
void main() {
int **a;
int k;
int nrows, ncols;
int i, j, x;
printf("Enter number of rows and columns: \n");
scanf("%d%d",&nrows,&ncols);
if((nrows >=5 && nrows <=10) || (ncols >=5 && ncols <=10))
{
if(nrows == ncols){
a = (int **)malloc(nrows * sizeof(int *));
if (a == NULL)
exit(1);
}else{
printf("Rows must be equal to Columns\n");
exit(1);
}
}else{
printf("Rows or Columns must be between 5 to 10\n");
exit(1);
}
for(i = 0 ;i < nrows ; i++) {
*(a+i) = (int *)malloc(ncols * sizeof(int));
if(*(a+i) == NULL) {
for(k = 0; k < i; k++){
free(a[k]);
free(a);
exit(1);
}
}
}
printf("Write down your array:\n");
for(i = 0 ; i < nrows; i++){
*a = *(a + i);
for(j = 0; j < ncols; j++){
scanf("%d", &x);
*(*a + j) = x;
}
}
printf("Your array is:\n");
for(i = 0 ; i < nrows; i++){
*a = *(a+i);
for(j = 0; j < ncols; j++){
printf("%d ", *(*a + j));
}
printf("\n");
}
}