Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 取消对不完整类型(节点)的引用指针_C_Pointers_Dereference - Fatal编程技术网

C 取消对不完整类型(节点)的引用指针

C 取消对不完整类型(节点)的引用指针,c,pointers,dereference,C,Pointers,Dereference,嘿,所以每当我尝试做这样的事情时,我都会遇到这个错误: void swap(struct lnode* n1){ struct lnode*temp = n1->next; } 我以为我可以让临时指针指向n1->next,但它给了我指向不完整类型错误的解引用指针。有人能帮我吗 谢谢您需要在作用域中完整声明struct lnode。否则怎么办 编译器知道在哪里找到下一个成员?要访问结构的成员,这样的声明是不够的: struct lnode; 这给了您一个不完整的类型:编译器现在知

嘿,所以每当我尝试做这样的事情时,我都会遇到这个错误:

void swap(struct lnode* n1){
    struct lnode*temp = n1->next;
}
我以为我可以让临时指针指向n1->next,但它给了我指向不完整类型错误的解引用指针。有人能帮我吗


谢谢

您需要在作用域中完整声明
struct lnode
。否则怎么办
编译器知道在哪里找到下一个成员?

要访问结构的成员,这样的声明是不够的:

struct lnode;
这给了您一个不完整的类型:编译器现在知道结构的名称,但不知道它包含哪些字段。您可以有指向不完整类型的指针,但不能访问它们的成员、计算它们的大小或执行任何需要了解结构成员的操作

需要一个完整的定义。例如:

struct lnode
{
    struct lnode *next;
    /* other fields */
};

您的问题表明编译器不了解lnode是什么,即不了解struct lnode的全貌。可能您可以发布更多的代码供我们帮助。

不一定在类内,但您需要在引用
next
或其他成员时提供完整声明,或者需要知道结构的大小。