gpt4 book ai didi

C错误: `arithmetic on pointer to an incomplete type`

转载 作者:行者123 更新时间:2023-11-30 19:14:37 27 4
gpt4 key购买 nike

如果我有定义:

typedef struct y_t *Y;

typedef struct x_t *X;    
struct x_t {
Y *b;
Y a;
int size;
};

(bY 类型、大小为 size 的数组)

我有

int func(X x) {    
int diff = x->a - x->b[0]; // error here
return diff;
}

假设ab数组中的一个元素,并且func需要返回ab 数组中的索引。

但是我收到错误指向不完整类型的指针的算术(我正在使用 Eclipse)。

我假设它有问题,因为它不知道数组的维度...那么我该如何修复func

最佳答案

消息...

arithmetic on pointer to an incomplete type

...可能会出现,因为 struct y_t 的声明在编译单元中此时不可见。 Y 的 typedef 作为此类结构的前向声明具有双重作用,但如果没有完整的声明,struct y_t 就是一个不完整的类型。

x->ax->b[0] 都是 Y,又名 struct y_t *.它们之间的区别是根据所指向结构的大小来定义的,但其大小未知,因为它是不完整类型。您需要为您正在执行的操作提供 struct y_t 声明。

关于C错误: `arithmetic on pointer to an incomplete type` ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33790877/

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