He estado intentando solucionarlo pero tengo un lio muy gordo. Ahora mismo lo tengo asi pero al rellenar el array lo desbordo y no veo como hacerlo de la forma correcta:
Código C++:
Ver original#include <iostream>
using namespace std;
void solicitar_dimensiones( int *f, int *c)
{
cout << "Ingrese el numero de filas para la matriz : ";
cin >> *f;
cout << "\nIngrese el numero de columnas para la matriz : ";
cin >> *c;
}
void pedir_memoria(int ***a,int f,int c)
{
a[0]= new int*[f];
for (int i = 0; i <f; i++)
{
a[0][i] = new int[c];
}
}
void rellenar_matriz(int ***a,int indice,int f,int c)
{
cout << "\nIngrese los valores de la matriz " << indice <<" : ";
for (int i = 0; i < f; i++)
{
for (int j = 0; j < c; j++)
{
cout << "\nIngrese el elemento [ " << i << ", " << j << " ]: ";
cin >> *a[i][j];
}
}
}
void sumar_matrices (int ***a,int ***puntm2,int ***puntm,int f, int c)
{
for (int i = 0; i < f; i++)
{
for (int j = 0; j < c; j++)
{
*(a[i][j])= *(puntm[i][j]) + *(puntm2[i][j]);
}
}
}
void liberar_memoria(int **a,int f)
{
for (int i = 0; i <f; i++)
{
delete[] a[i];
}
delete[] a;
}
void imprimir_matriz(int **a, int f, int c )
{
cout << "\nLa matriz final es: \n";
for (int i = 0; i < f; i++)
{
for (int j = 0; j < c; j++)
{
cout << a[i][j] <<endl;
}
}
}
int main()
{
int f,c;
int **psumas;
int **pmatriz2;
int **pmatriz1;
solicitar_dimensiones(&f,&c);
pedir_memoria(&pmatriz1,f,c);
pedir_memoria(&pmatriz2,f,c);
pedir_memoria(&psumas,f,c);
rellenar_matriz(&pmatriz1,1,f,c);
rellenar_matriz(&pmatriz2,2,f,c);
sumar_matrices(&psumas,&pmatriz2,&pmatriz1,f,c);
imprimir_matriz(psumas,f,c);
liberar_memoria(pmatriz1,f);
liberar_memoria(pmatriz2,f);
liberar_memoria(psumas,f);
return 0;
}