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 *列表所做的那样)
答案 0 :(得分:1)
很难说你在追求什么,因为我发现你的问题不清楚。我将假设Node包含Node* next
(指向Node的指针),因为类或结构不能包含其自身的完整实例,因此Node.next
不能是Node
。
首先,(*added).next = (*list);
。 (*list)
取消引用Node*
并解析为Node
,因此如果将Node*
指定为Node
,我会感到惊讶。
第二,(*list) = added;
。这个看起来更有可能进行编译,但它会在added
指向的空间中执行list
的浅层副本。
你的代码中没有指定实际指针的位置,所以我对'添加指针指针'的含义感到困惑。我也不知道你的意思是“不工作”。您需要解释您想要查看的行为以及您实际看到的行为。
答案 1 :(得分:0)
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
}