C 为什么';当我想添加一些东西作为链表的标题时,我的代码不起作用吗?
出于某种原因,我对此有意见。为什么不起作用?我认为向指针添加一个指针将允许我更改指针的地址(就像我在Node*list中所做的那样)很难说您想要什么,因为我发现您的问题不清楚。我假设节点包含一个C 为什么';当我想添加一些东西作为链表的标题时,我的代码不起作用吗?,c,pointers,linked-list,C,Pointers,Linked List,出于某种原因,我对此有意见。为什么不起作用?我认为向指针添加一个指针将允许我更改指针的地址(就像我在Node*list中所做的那样)很难说您想要什么,因为我发现您的问题不清楚。我假设节点包含一个节点*next(指向节点的指针),因为类或结构不能包含自身的完整实例,因此节点。next不能是节点 首先,使用(*添加)。下一步=(*列表)(*list)取消引用节点*并解析为节点,因此如果将节点*指定为节点将编译,我会感到惊讶 第二,添加了(*list)=。这一个看起来更容易编译,但它将把添加的的一个浅
节点*next
(指向节点的指针),因为类或结构不能包含自身的完整实例,因此节点。next
不能是节点
首先,使用(*添加)。下一步=(*列表)代码>(*list)
取消引用节点*
并解析为节点
,因此如果将节点*
指定为节点
将编译,我会感到惊讶
第二,添加了(*list)=代码>。这一个看起来更容易编译,但它将把添加的的一个浅拷贝复制到列表
指向的空间中
代码中没有指定实际指针的位置,所以我对“向指针添加指针”的含义感到困惑。我也不知道你说的“不起作用”是什么意思。你需要解释你想看到的行为,以及你实际看到的行为
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
}
void addToHead(Node * list, Node* added)
{
//Where NodePointer is a typedef of a pointer to a node
(*added).next = list; //you could also do added->next = list
list = added; //Set list pointer back to first entry
}