Grazie mille, funziona tutto perfettamente .
Però non ho capito bene questo pezzo

codice:
    Matrix = new( int * );
   	for(i=0;i<rows;i++)	
       Matrix[i] = new int;
Innanzitutto viene allocato spazio per un puntatore, giusto?
E poi con il ciclo for allochi spazio per un "puntatore" ad ogni riga della matrice?