Й способ работы с динамическими матрицами.

При работе с динамическими матрицами следует помнить, что выделенный участок памяти под матрицу A(N,M) представляет собой участок памяти размером NxM элементов.

A=(тип *) calloc(n*m, sizeof(тип))

или

A=(тип *) malloc(n*m*sizeof(тип))

Поэтому для обращения к элементу Ai,j необходимо, по номеру строки i и номеру столбца j вычислить номер этого элемента k в динамическом массиве. Учитывая, то что в массиве элементы нумеруются с нуля k=i.*m+j.

a[i][j] *(a+i*m+j)