Non capisco come ti possa funzionare senza problemi ...

Il codice corretto per l'allocazione/deallocazione e'

codice:
    Matrix = new int*[rows];
   	for(i=0;i<rows;i++)	
       Matrix[i] = new int[cols];
    
  // ...

   	for(i=0;i<rows;i++)	
       delete Matrix[i];
	delete Matrix;
... del resto, nel codice di Vincent non si capisce come intervenga la variabile cols nell'allocazione ...