/* 
  Scrivere un main che alloca una matrice di dimensione 
  dinamica sullo HEAP ed una funzione di utilita'
  che inizializzata tale matrice leggendone gli
  elementi da tastiera.

  Infine dal main stampare la matrice a video 
  e poi deallocarla dallo HEAP.
 
*********************************************************/

#include <iostream>
using namespace std;

void leggiMatriceDaTastiera(int* mat, int r, int c) {
   for (int i = 0; i < r; i++) {
	   cout << endl<<"Inserire gli elementi della riga " << i << endl;
	   for (int j = 0; j < c; j++) {
		   cout << "elemento (" << i << ',' << j << ") = ";
		   cin >> mat[i*c + j];
	   }
	   cout << endl;
   }
}



int main(){
   	
   cout << "Creazione di una matrice dinamica (sullo HEAP):" << endl;

   int R;
   cout << "Inserire il numero di righe: ";
   cin >> R;

   int C;
   cout << "Inserire il numero di colonne: ";
   cin >> C;

   int *MAT = new int[R*C]; // Allocazione sullo HEAP come matrice linearizzata
   
   leggiMatriceDaTastiera(MAT, R, C);
   
   cout << "Matrice introdotta" << endl;

   for (int i = 0; i < R; i++){
       for (int j = 0; j < C; j++){
	       cout << MAT[i*C+j] << ' ';
	   }
	   cout << endl;
   }
   
   cout << "La matrice sta per essere deallocata"<<endl;
   delete[] MAT; // Deallocazione della matrice dallo HEAP

   return 0;
}
