C - 主函数中的(节点)结构不工作(有意避免使用单链表实现)

标签 c data-structures linked-list program-entry-point

我正在尝试创建一个没有实现的单向链表。我这样做只是为了更深入地了解结构的工作原理。我只想在主函数中创建 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/

相关文章:

c - 删除节点时出现无限循环

python - Python中改变链表分区节点值

在c中创建n个链表

计算字符串中元音的个数

c++ - 建库失败 : file format not recognized; treating as linker script

c - 嵌入式 C : How to apply the MAP macro to two arguments at a time instead of one?

c - 从文件中读取信息

Python顺序遍历到一个平面列表

javascript - 解析完整的 json 并搜索与值匹配的键

data-structures - Common Lisp 的优先级队列?