gpt4 book ai didi

c - 当我想添加一些东西作为链表的头部时,为什么我的代码不起作用?

转载 作者:行者123 更新时间:2023-11-30 15:37:26 25 4
gpt4 key购买 nike

void addToHead(Node *list, Node added) 
{
// Where NodePointer is a typedef of a pointer to a node

(*added).next = (*list);
(*list) = added; //Set list pointer back to first entry
}

出于某种原因,我遇到了一些问题。为什么不起作用?我认为添加一个指向指针的指针将允许我更改指针的地址(就像我对 Node * list 所做的那样)

最佳答案

很难说出你想要什么,因为我发现你的问题不清楚。我假设 Node 包含一个 Node* next(指向 Node 的指针),因为类或结构不能包含其自身的完整实例,因此 Node.next 不能是一个节点

首先,使用(*added).next = (*list);(*list) 取消引用 Node* 并解析为 Node,因此如果分配 Node* 作为 Node 进行编译。

第二,使用(*list) = added;。这个看起来更容易编译,但它会在 list 指向的空间中进行 added 的浅拷贝。

您的代码中没有分配实际指针的位置,因此我对“向指针添加指针”的含义感到困惑。我也不知道你所说的“不起作用”是什么意思。您需要解释您希望看到什么行为,以及您实际看到什么行为。

关于c - 当我想添加一些东西作为链表的头部时,为什么我的代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22232250/

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