Я изучаю C, и я попытался выделить память для 2D-массива (размеры массива я получаю от пользователя), но я получаю ошибку сегментации после того, как пытаюсь его инициализировать. Мой код таков:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("give the dimensions!\n");
int row,col,i,j;
int **myArray;
printf("\nrows = ");
scanf("%d", &row);
printf("columns = ");
scanf("%d", &col);
myArray = malloc(row*sizeof(*myArray) + col*sizeof(**myArray));
printf("Init the array: \n");
for (i = 0; i < row; i++)
{
for (j = 0; j <col ; j++)
{
scanf("%d", &myArray[i][j]);
}
}
return 0;
}
Если я изменяю массив как myArray[2][2]
и опускаю оператор malloc, он работает нормально.
scanf(" %d", &myArray[i][j]);
, как только вы действительно приступите к размещению 2D-массива - person Elias Van Ootegem   schedule 19.12.2013