#include <iostream>
#include <iomanip>
using namespace std;
int** reservarMemoria(size_t, size_t);
void llenarMatriz(int **, size_t, size_t);
void mostrarMatriz(int **, size_t, size_t);
void liberarMemoria(int **, size_t);
int main() {
size_t filas;
size_t columnas;
cout << "filas -----> ";
cin >> filas;
cout << "columnas --> ";
cin >> columnas;
int **matriz = reservarMemoria(filas, columnas);
llenarMatriz(matriz, filas, columnas);
cout << endl;
mostrarMatriz(matriz, filas, columnas);
liberarMemoria(matriz, filas);
return 0;
}
int** reservarMemoria(size_t filas, size_t columnas) {
int **matriz = new int *[filas];
for (size_t f(0); f < filas; ++f) {
matriz[f] = new int[columnas];
}
return matriz;
}
void llenarMatriz(int **matriz, size_t filas, size_t columnas) {
int valor(1);
for (size_t f(0); f < filas; ++f) {
for (size_t c(0); c < columnas; ++c) {
matriz[f][c] = valor++;
}
}
}
void mostrarMatriz(int **matriz, size_t filas, size_t columnas) {
for (size_t f(0); f < filas; ++f) {
for (size_t c(0); c < columnas; ++c) {
cout << setw(4) << matriz[f][c];
}
cout << endl;
}
}
void liberarMemoria(int **matriz, size_t filas) {
for (size_t f(0); f < filas; ++f) {
delete[] matriz[f];
}
delete[] matriz;
}