Salve a tutti spero di postare correttamente visto che è il primo msg che invio su questo forum
Passo ad illustrare il mio problema
Devo creare la trasposta di una matrice(quadrata) generica e salvarla e non capisco perchè il mio codice non funziona

codice:
#include <cstdlib>
#include <iostream>
using namespace std;

#define max 10

void trasposta(int a[][max],int &x);






int main(){

int n;
cout<<"inserisci l'ordine della matrice quadrata da traspore: ";
cin>>n;
int m[max][max];

for(int i=0; i<n;i++)
 for(int j=0; j<n;j++){
 cout<<"inserisci l'elemento"<<"[ "<<i<<" , "<<j<<" ] ";
 cin>> m[i][j];
cout<<endl;
}
 
 
 cout<<" La matrice inserita è: \n";
for(int i=0; i<n;i++){
 for(int j=0; j<n;j++)
 cout<<m[i][j]<<" ";
 cout<<endl;}
 trasposta(m,n);                  




      system("PAUSE");
      return EXIT_SUCCESS;
      }



void trasposta(int a[][max],int &x){


{int tmp,i,j;

for(i=0; i<x;i++){
 for(j=0; j<x;j++){
 
  tmp=a[i][j];
  a[i][j]=a[j][i];
  a[j][i]=tmp;

}}} 

cout<<" La matrice inserita trasposta e :\n";
for(int i=0; i<x;i++){
 for(int j=0; j<x;j++)
 cout<<a[i][j]<<" ";
 cout<<endl;}
 
}
sono arrivato ad soluzione alternativa ma vorrei capire perchè la prima non funziona grazie in anticipo per le vostre risposte

Posto anche la soluzione alternativa
codice:
#include <cstdlib>
#include <iostream>
using namespace std;

typedef int matrix[10][10];
void trasposta(matrix m,int &x);






int main(){

int n;
cout<<"inserisci l'ordine della matrice quadrata da traspore: ";
cin>>n;
matrix m;

for(int i=0; i<n;i++)
 for(int j=0; j<n;j++){
 cout<<"inserisci l'elemento"<<"[ "<<i<<" , "<<j<<" ] ";
 cin>> m[i][j];
cout<<endl;
}
 
 
 cout<<" La matrice inserita è: \n";
for(int i=0; i<n;i++){
 for(int j=0; j<n;j++)
 cout<<m[i][j]<<" ";
 cout<<endl;}
 
 trasposta(m,n);                  




      system("PAUSE");
      return EXIT_SUCCESS;
      }



void trasposta(matrix a,int &x){
matrix t;


{

for(int i=0; i<x;i++){
 for(int j=0; j<x;j++){
 
  t[j][i]=a[i][j];
  
 
                   }
   } 
      
     }

cout<<" La matrice inserita trasposta e :\n";
for(int i=0; i<x;i++){
 for(int j=0; j<x;j++)
 cout<<t[i][j]<<" ";
 cout<<endl;}
 
}