Guarda in merito al tuo primo posto, ti spiego gli errori:

dopo int *matrix = allocMatrix ci devi mettere il punto e virgola.

La funzione allocMatrix la dichiari come doppio puntatore a int mentre ritorni un puntatore a int.


Quanto al problema, in teoria è possibile creare una matrice quadrata di ordine n come un array unidimensionale di lunghezza n*n (è lo stesso metodo usato per memorizzare un array bidimensionale sullo stack, invece che sull'heap).
Basta fare come hai fatto tu e poi per accedere all'elemento usare la formula:

elemento = i * nc+j

dove i è la riga e j è la colonna, mentre nc sarebbe la dimensione dell'array (ne basta una).

Ma come ti ha suggerito oregon, è meglio utilizzare l'altro metodo, più veloce.

Se ti può interessare, ho creato un programma (è in c++, cambia solo qualcosina di I/O e la malloc che è stata sostituita da new) per calcolare il determinante di una matrice di qualsiasi ordine:
http://newbufferedwriter.blogspot.co...te-di-una.html