gpt4 book ai didi

c - 声明链表节点

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:25 25 4
gpt4 key购买 nike

如果它太基础或愚蠢,请多多包涵,但我想知道,当我们有一个节点结构时:-

struct node {
int data ; //data
struct node* next; //pointer
}

为什么我们将节点声明为:-

struct node* new_node = null;

struct node* new_node= (struct node*)malloc(sizeof(struct node)); 

为什么不只是 struct node new_node = null

最佳答案

你可以这样声明一个节点,但是你需要正确地初始化它。

结构节点 new_node = {5 , NULL};将创建一个名为 new_node 的节点,其数据设置为 5,next 设置为 NULL。

问题或多或少是您实际需要什么。当您在函数中创建这样的节点时,如果您不复制它,该节点将在函数完成后不复存在。这通常是不可取的。

但是如果你无论如何都需要复制这样一个节点,你可以首先使用 malloc 获取“副本”的内存,然后通过指向“副本”的指针将数据填入“副本”节点,而不是将节点放在函数堆栈上。

关于c - 声明链表节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31424451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com