Hola amigos, estoy intentando hacer un ejercicio donde se pide la dimension de unas matrices y luego se suman y muestro el resultado de la matriz final. El problema lo tengo en la parte donde solicito memoria dinamica para las matrices ya que da una excepcion. Este es mi codigo:
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= new int*[f];
for (int i = 0; i <f; i++)
{
*(a[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;
}
¿alguien podria ayudarme indicando donde esta el fallo y como solucionarlo?