EX: Matriz e vetores - Função transposta

Faça um algoritmo que recebe uma matriz A m x n e retorne a transposta dela.


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

int *transposta(int *v, int m, int n){
    int i, j, aux, *aux2, k, l, h=0;
   
    aux2=(int*)calloc(sizeof(int),m*n);
   
for(i=0; i<n; i++){
         for(j=0; j<m; j++){
            printf("digite a%d%d:  ",j,i);          
            scanf("%d",&aux);
            k=i*n+j;
            v[k]=aux;
         }
}
for(i=0; i<m; i++){
         for(j=0; j<n; j++){
                  l=i*n+j;
                  aux2[l]=v[h];
                  h++;
         }
}
return aux2;
}

int main(){
    int m,n,*v,*k,l,i,j;
    printf("digite a qntd de linha\n");
    scanf("%d",&m);
    printf("digite a qntd de coluna\n");
    scanf("%d",&n);
    v=(int*)calloc(sizeof(int),m*n);
    k = transposta(v,m,n);

     for(i=0;i<n;i++){
       for(j=0;j<m;j++){
           l=i*n+j;
           printf("%d ",k[l]);
       }
       printf("\n");
     }

    system("pause");
    return 0;
}