expected ‘struct matrix_t *’ pero el argumento es del tipo ‘struct matrix_t *’? _? ninguna diferenci

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 es la función matrix_multiply

aquí está mi código que comienza en la línea 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);

y aquí están mis prototipos de funciones y estructura

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);

Realmente no entiendo estos mensajes de error. Por favor, ayúdame :

Respuestas a la pregunta(6)

Su respuesta a la pregunta