gpt4 book ai didi

c - 预期为 ‘struct matrix_t *’ 但参数的类型为 ‘struct matrix_t *’ ?_?没有不同

转载 作者:太空狗 更新时间:2023-10-29 15:11:35 27 4
gpt4 key购买 nike

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 *’

第 6 行是 matrix_multiply 函数

这是我的代码,从第 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);

这是我的函数原型(prototype)和结构

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

我真的不明白这些错误信息。请帮助我:)

最佳答案

你的类型定义应该是

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

否则,matrix_t 类型指的是一个完整但未命名的结构类型,而 struct matrix_t 指的是一个不同的、已命名但不完整的结构类型,您从未定义过它。

关于c - 预期为 ‘struct matrix_t *’ 但参数的类型为 ‘struct matrix_t *’ ?_?没有不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846951/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com