我正在尝试创建一个没有实现的单向链表。我这样做只是为了更深入地了解结构的工作原理。我只想在主函数中创建 2 个节点并将它们链接起来。我可以在结构声明中使用 typedef 并通过实现来做到这一点,但这不是我想要的(我可以成功做到)。
我写了一些代码,但在第 27 行出现错误(同样的问题出现在第 29、30 和 33 行)。我知道这个问题的解释很简单,但我无法在脑海中或网络(或书籍)上找到它。对于这个问题的任何帮助,我将不胜感激。去年我一直在编程。
我想在 CodeReview 中寻求帮助,但相应地,根据他们的常见问题解答,这不是在此类问题上寻求帮助的地方。
错误是:
27:11: error: incompatible types when assigning to type 'struct NODO ' from type 'struct NODO'
E.sig = F;
其他线路也有同样的问题。所有内容都在同一个文件 (.c) 中。
完整代码如下:
#include <stdio.h>
#include <stdlib.h>
struct NODE {
int data;
struct NODE *next;
};
struct LIST {
struct NODE *first;
struct NODE *last;
int size;
};
void main(){
struct NODE E;
struct NODE F;
struct LIST L;
E.data = 1;
E.next = NULL;
F.data = 2;
F.next = NULL;
E.next = F; // line 27
L.first = E; // line 29
L.last = F; // line 30
struct NODE *ptr;
ptr = E; // line 33
while(ptr != NULL){
printf("%i\n", ptr->data);
ptr = ptr->next;
}
}
最佳答案
问题是您正试图将一个对象分配给一个指针。您应该分配节点的地址并记下节点对象本身。
尝试 E.next = &F;
,其他的都一样。
关于C - 主函数中的(节点)结构不工作(有意避免使用单链表实现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51659399/