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