expected 'struct matrix_t *', mas o argumento é do tipo 'struct matrix_t *'? _? nenhuma diferença

main.c:78:25: erreur: assignment from incompatible pointer type [-Werror]
main.c:81:9: erreur: passing argument 2 of ‘matrix_multiply’ from incompatible pointer type [-Werror]
main.c:6:11: note: expected ‘struct matrix_t *’ but argument is of type ‘struct matrix_t *’

line 6 é a função matrix_multiply

aqui é o meu código que começa na linha 74

matrix_t *m;
matrix_t *first = matrix_reader_next(reader);
matrix_t *previous = first;
while ( (m = matrix_reader_next(reader))) {
    previous->next = m;
    previous = m;
}
matrix_t *result = matrix_multiply(first,first->next);

e aqui estão os protótipos e a estrutura das minhas funções

typedef struct {
   int **M;
   int nLi;
   int nCo;
   struct matrix_t *next;
} matrix_t;

matrix_t* matrix_multiply(matrix_t* first, matrix_t*second);
matrix_t* matrix_reader_next(matrix_reader_t *r);

Eu realmente não entendo essas mensagens de erro. Por favor me ajude :

questionAnswers(6)

yourAnswerToTheQuestion