Estaba haciendo un programa que crea una matriz y luego hace su matriz transpuesta, cree unas cuantas funciones, compila todo bien, pero al momento de ejecutar me sale error. Supongo que es un problema de mi código.
Cuando llamo hasta esta parte
pedirDatos();
cout<<endl;
imprimirMatriz(p,nFilas,nColumnas);
cout<<endl;//Hasta esta parte todo bien, luego se demora en cargar y me sale error
Me funciona todo bien, luego es cuando falla, parece que es un error de la función convertirTranspuesta
#include <iostream>
using namespace std;
int **p, **transpuesta,nFilas,nColumnas;
void pedirDatos();
void imprimirMatriz(int**,int,int);
void convertirTranspuesta(int**,int,int);
int main(){
pedirDatos();
cout<<endl;
imprimirMatriz(p,nFilas,nColumnas);
cout<<endl;//Hasta esta parte todo bien, luego se demora en cargar y me sale error
convertirTranspuesta(transpuesta,nFilas,nColumnas);
cout<<endl;
imprimirMatriz(transpuesta,nFilas,nColumnas);
return 0;
}
void pedirDatos(){
cout<<"Ingrese el numero de filas: "; cin>>nFilas;
cout<<"Ingrese el numero de columnas: "; cin>>nColumnas;
p = new int*[nFilas];
for(int i=0;i<nFilas;i++){
p[i] = new int[nColumnas];
}
for(int i=0;i<nFilas;i++){
for(int j=0;j<nColumnas;j++){
cout<<"Ingrese un numero para la posicion ["<<i<<"]["<<j<<"]: ";
cin>>*(*(p+i)+j);
}
cout<<endl;
}
}
void imprimirMatriz(int **matriz,int nF,int nC){
for(int i=0;i<nF;i++){
for(int j=0;j<nC;j++){
cout<<*(*(matriz+i)+j)<<" ";
}
cout<<endl;
}
}
void convertirTranspuesta(int **matriz,int nF,int nC){
transpuesta = new int*[nC];
for(int i=0;i<nC;i++){
transpuesta[i] = new int[nF];
}
for(int i=0;i<nC;i++){
for(int j=0;j<nF;j++){
*(*(transpuesta+i)+j) = *(*(matriz+j)+i);
}
}
}