/*
EJEMPLO 11.4.
Lectura y visualización de matrices cuadradas con funciones
cuya memoria se reserva dinámicamente e interactivamente.
Se escriben las funciones de lectura y escritura
de matrices cuadradas, cuya memoria se ha reservado
dinámicamente en un programa principal.
*/
#include <iostream>
#include <cstdlib>
using namespace std;
typedef int* col;
void leerMatriz(int **m, int n){
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
cout<<"m["<<i<<"]["<<j<<"]=";
cin>>m[i][j];
}
}
}
void imprimirMatriz(int **m, int n){
for(int i=0; i<n; i++){
for(int j=0; j<n; j++)
cout<<" "<<m[i][j];
cout<<endl;
}
}
int main()
{
int n;
int **m; // válido con col *m
cout<<"Introduzca dimension de m: ";
cin>>n;
m = new int*[n]; // válido con m = new col[n]
for(int i=0; i<n; i++){
m[i] = new int[n];
}
leerMatriz(m, n);
imprimirMatriz(m, n);
//Liberar Memoria asignada
//en orden inverso a su creación
for (int i = 0; i < n; i++)
delete m[i];
delete [] m;
return EXIT_SUCCESS;
}