Действительно ли он в C динамически выделяет 2d массивы таким образом?Выделение 2D-массива с указателем на массив фиксированного размера
//fixed size
int (*arr2d)[9][9]=malloc(sizeof(int[9][9]));
//variable size
int x=5,y=3;
int (*arr2d)[x][y]=malloc(sizeof(int[x][y]));
//assignment
(*arr2d)[0][1]=2;
EDIT: Под «действительный» Я имею в виду, есть ли подводные камни в противоположности:
int i,x=5,y=10;
int **arr2d=malloc(sizeof(int*[x]));
for(i=0;i < x;i++)
arr2d[i]=malloc(sizeof(int[y]));
arr2d[0][0]=5;