编译错误:请求成员在某些内容中不是结构或联盟
-
29-10-2019 - |
题
编辑: 下面的代码已修改为可以解决问题。
具体来说,(*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_item
是HardwareListItem**
,因此操作符->
返回HardwareListItem*
,这显然不是结构。
您使用了太多的指针,这很令人困惑。尝试简化代码,那里有很多错误。
不隶属于 StackOverflow