При работе с динамическими матрицами следует помнить, что выделенный участок памяти под матрицу 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)