Devo effettuare la trasposta utilizzando la struttura dati matrice.. Senza usare la struttura dati non ho problemi, ma con questa struttura la matrice outupt viene azzerata stampando 0..
A cosa è dovuto?

codice:
#include <stdio.h>
#include <stdlib.h>
#define r 100
#define c 100
struct matrice {
      float m[r][c];
      int righe;
      int colonne;
       };
       typedef struct matrice matrice;
       int i,j;
       void trasposta(matrice mat1, matrice mat2);
      

int main(int argc, char *argv[])
{
    matrice m_in;
    matrice m_out;
    
    printf("Numero righe: ");
    scanf("%d", &m_in.righe);
    printf("\nNumero colonne: ");
    scanf("%d", &m_in.colonne);
    printf("\nNumero righe:");
    scanf("%d", &m_out.righe);
    printf("\nNumero colonne: ");
    scanf("%d", &m_out.colonne);
     for (i=0; i<m_in.righe; i++)
     {
         for (j=0; j<m_in.colonne; j++)
         {
             printf("a[%d][%d]",i,j);
             scanf("%d", &m_in.m[i][j]);
             
             }
         }
    
  trasposta(m_in, m_out);
  for (i=0; i<m_in.righe; i++)
     {
         for (j=0; j<m_in.colonne; j++)
         {
             printf("%5f",m_out.m[i][j]);
             
             }
             printf("\n");
         }
  
  system("PAUSE");	
  return 0;
}
void trasposta(matrice mat1, matrice mat2)
{
     int i,j;
     for (i=0; i<mat1.righe; i++)
     {
         for (j=0; j<mat1.colonne; j++)
         {
             mat2.m[i][j]=mat1.m[j][i];
             
             }
         }
     
     }