Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么';当我想添加一些东西作为链表的标题时,我的代码不起作用吗?_C_Pointers_Linked List - Fatal编程技术网

C 为什么';当我想添加一些东西作为链表的标题时,我的代码不起作用吗?

C 为什么';当我想添加一些东西作为链表的标题时,我的代码不起作用吗?,c,pointers,linked-list,C,Pointers,Linked List,出于某种原因,我对此有意见。为什么不起作用?我认为向指针添加一个指针将允许我更改指针的地址(就像我在Node*list中所做的那样)很难说您想要什么,因为我发现您的问题不清楚。我假设节点包含一个节点*next(指向节点的指针),因为类或结构不能包含自身的完整实例,因此节点。next不能是节点 首先,使用(*添加)。下一步=(*列表)(*list)取消引用节点*并解析为节点,因此如果将节点*指定为节点将编译,我会感到惊讶 第二,添加了(*list)=。这一个看起来更容易编译,但它将把添加的的一个浅

出于某种原因,我对此有意见。为什么不起作用?我认为向指针添加一个指针将允许我更改指针的地址(就像我在Node*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
}