Ti consiglio di scrivere la matrice tutta su una riga, che sarà quindi un array, che poi leggi come se fosse una matrice.
Ad esempio:

codice:
int *mat;
mat=(int*)malloc(M*N*sizeof(int));  // M righe e N colonne
Se vuoi accedere alla riga i-esima, colonna j-esima:

codice:
mat[i*N+j]=valore,