编辑: 下面的代码已修改为可以解决问题。

具体来说,(*hardwareList.next_item)->next最初编写时没有括号(例如,*hardwareList.next_item->next),并且编译器无法理解。

我正尝试锻炼为什么编译器与我的C代码混淆。我正在尝试创建一个链接列表,该列表存储所有项目以及指向最后一个“ next”变量的地址的指针,以便于附加。 通用标签

编译器说: 通用标签

有帮助吗?

解决方案

我猜问题是这段代码:*(hardwareList.next_item)->data

next_item是指向指针的指针,所以我的猜测是编译器将其读取为*((hardwareList.next_item)->data),这当然不起作用-指针在C中没有任何成员。

尝试使用((*(hardwareList.next_item))->data)以获得正确的解除引用顺序。

其他提示

hardwareList.next_itemHardwareListItem**,因此操作符->返回HardwareListItem*,这显然不是结构。

您使用了太多的指针,这很令人困惑。尝试简化代码,那里有很多错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top