EX: Matriz e vetores - 1

Faça um algoritmo que recebe os números M e N, dimensão da matriz A, lê os números da matriz do teclado e retorna um vetor com os números em linha.

int M( matriz(int n, int m)){
      int i, j, a, k;
      int * pv;

      pv = (int*) calloc (sizeof(int),m*n);
      if(pv != NULL){
          for(i=0 ; i<n ; i++){
              for(j=0 ; j<m ; j++){
                  scanf("%i", &a);
                  k = i * m +j;
                  pv[k] = a;
             }    
         }
      return pv;
      }
return NULL;
}
Basicamente é declarado um ponteiro pv, e a paritr das dimensões da matriz (m x n), é alocado espaço para ela, então é usado dois for para percorrer em forma de matriz, na qual será lido do teclado e digitado pelo usuário cada elemento da matriz, e jogado dentro do ponteiro na posição correta através da fórmula (k = i * m +j;);