Hai dichiariato la tua variabile mat kome un semplice puntatore a int.
L'allocazione di memoria è troppo banale, perchè così nn allochi spazio per una matrice ma solo un vettore n*n.


Cmq questo ragionamento è valido se programmi sotto i linguaggi assembler, questo perchè le matrici in memoria non sono altro ke locazioni di memoria adiacenti e per spostarsi da un a locazione all'altra bisogna sommare 4(x processori a 32 bit) al tuo indice di scorrimento matrice e basta.
:metallica