嘿所以每当我尝试做这样的事情时,我都会收到错误:
void swap(struct lnode* n1){
struct lnode*temp = n1->next;
}
我认为我可以让temp指针指向n1-> next但是它给了我指向不完整类型错误的解除引用指针。任何人都可以帮助我吗?
由于
答案 0 :(得分:2)
要访问结构的成员,这样的声明是不够的:
struct lnode;
这给你一个不完整的类型:编译器现在知道结构的名称,但不知道它包含哪些字段。您可以指向不完整类型,但您无法访问其成员,计算其大小或执行任何需要了解结构成员的事情。
需要完整的定义。如:
struct lnode
{
struct lnode *next;
/* other fields */
};
答案 1 :(得分:0)
您需要在范围内拥有struct lnode
的完整声明。否则,怎么会
编译器知道在哪里找到next
成员?
答案 2 :(得分:0)
你的问题表明,编译器不知道lnode是什么,即不是struct lnode的全貌。也许您可以发布更多代码供我们帮忙。