Boa tarde, sou nova aqui, acabei de me registar. Estou com uma dúvida a resolver um exercício. Se me puderem ajudar, agradecia imenso!  É pedido neste problema a multiplicação de duas matrizes, a função recebe 2 ponteiros para matrizes do tipo Mat (que é uma estrutura) e querem que imprime no output o resultado da multiplicação das 2 matrizes. O meu problema é na função main quando chama a função, algo não está bem declarado.  Vou colocar aqui:    typedef struct{
  int lines, cols;
  int **val;
}Mat;
void multPrint(Mat *a, Mat *B)
{
  int tamanho = (a->lines * b->lines);
  int i,j,x=0;
  int y=0;
  int *vec;
  vec = (int*)malloc(sizeof(int) * (a->lines));
  
  for(i=0; i< tamanho; i++)
    vec[i]=0;
  
  
  for(i=0; i< (a->lines); i++)
    y=0;
  while(y < (b->cols))
    {
      for(j=0; j< (b->cols); j++)
    {
      vec[x]= vec[x] + (a->val[ i ][ j ] * b->val[ j ][ y ]);
    }
      y++;
      x++;
    }
}
main()
{
  Mat *v;
  Mat *s;
  v = (Mat*)malloc(sizeof(Mat));
  s = (Mat*)malloc(sizeof(Mat));
  v = {2,2,{1,2},{3,4}};
  s = {2,2,{1,1},{3,0}};
  multPrint(v,s);
}