La matrice non e' allocata/liberata correttamente e quando va a leggere i dati, accede a zone di memoria non lecite.

Quando allochi deve essere

codice:
matrix = new int*[n];
for(i=0;i<n;i++)	
   matrix[i] = new int[n];
e quando liberi

codice:
for(i=0;i<n;i++)	
  delete matrix[i];
delete matrix;