代码之家  ›  专栏  ›  技术社区  ›  user8314628

如何在C中为链表的头分配空间?

  •  0
  • user8314628  · 技术社区  · 6 年前
        struct node {
            int data;
            struct node *next;
        };
    
        int main() {
    
            struct node *head = malloc(sizeof(struct node));
            struct node *current = head;
            ...
        };
    

    虽然这段代码可以在没有任何警告或错误的情况下运行,但是Valgrind会给出一些消息 Conditional jump or move depends on uninitialised value(s) , Uninitialised value was created by a heap allocation

    我不知道出了什么问题。我们定义了一个 node 外部结构 main 作用所以我认为我们可以使用 sizeof(struct node)

    1 回复  |  直到 6 年前
        1
  •  5
  •   Loc Tran    6 年前

    您需要初始化数据,并使用head初始化下一个指针。我是说

    head->data = 0;
    head->next = NULL;
    

    它会通过考查的