In C++ (credo lo stesso in C) viene realizzata la cosiddetta linearizzazione delle matrici, se non vado errato viene realizzata la linearizzazione per righe.
Es.

Ho una matrice 2x3, in memoria viene memorizzata così:

riga1 riga2

quindi ti è sufficiente allocare memoria

A = (int *)malloc(n*n*sizeof(int))



Max