expected ‘struct matrix_t *’ but argument is of type ‘struct matrix_t *’ ?_? no difference

后端 未结 3 1922
北荒
北荒 2021-01-19 09:11
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         


        
3条回答
  •  难免孤独
    2021-01-19 10:05

    Change your struct definition to this:

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

    Notice the difference?

    struct matrix_t is not the same as typedef ... matrix_t; they exist in different namespaces; so in your version of the code, the compiler assumes that struct matrix_t *next refers to a different, incomplete type.

提交回复
热议问题