从双指针访问结构

凯文

我目前正在尝试在C中实现一个双向链接列表,并且不了解如何从双指针访问该结构。

这是我的简单结构:

typedef struct node {
  int val;
  struct node * next;
  struct node * prev;
} node;

这是一个简单的方法,在该方法中,我尝试将值推到列表的最前面:

void push_front(node ** head, int newVal) 
{
  node * newNode = malloc(sizeof(node));

  newNode->val = newVal;
  newNode->next = head;

  *head->prev = newNode;

  *head = newNode;
}

但是,该行*head->prev = newNode给我一个错误,说的左边->prev必须指向struct/union我只是在学习C,所以也许我忽略了一些确实很简单的事情,但是不是将指针指向头节点的指针吗?* head是指向我的head节点的指针。我认为*head->prev应该采取哪种手段起作用?

格雷格·休吉尔

是的,head是指向您的头节点的指针的指针。因此,您可以->prev通过以下方式进行访问

(*head)->prev = newNode;

没有括号,C的运算符优先级规则将您的语句解析为

*(head->prev) = newNode;

这不是你想要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从双指针访问结构

来自分类Dev

访问函数中的双指针结构

来自分类Dev

如何传递/访问结构的双指针?

来自分类Dev

通过该结构类型的双指针访问结构的成员

来自分类Dev

如何通过双指针访问结构中的结构成员?

来自分类Dev

通过C中的双指针访问结构元素

来自分类Dev

访问双结构指针,发生分段错误

来自分类Dev

通过双指针函数变量从结构数组访问数据

来自分类Dev

双指针指向结构

来自分类Dev

包含两个双指针的结构,访问第二个双指针时出现段错误

来自分类Dev

C ++双指针成员访问

来自分类Dev

通过指针访问结构

来自分类Dev

控制结构数组上的双指针

来自分类Dev

免费使用带双指针的结构

来自分类Dev

正确释放双指针到结构的方法

来自分类Dev

访问结构和空指针

来自分类Dev

通过指针访问结构体中的指针

来自分类Dev

通过指针访问结构体中的指针

来自分类Dev

使用指针到指针访问结构中的指针到指针

来自分类Dev

如何使用双指针正确引用结构中的指针

来自分类Dev

使用结构指针访问函数中的结构

来自分类Dev

访问结构的字段以获取双链表

来自分类Dev

使用指针和双指针访问时的性能差异

来自分类Dev

使用指针和双指针访问时的性能差异

来自分类Dev

释放分配有双指针的结构数组

来自分类Dev

Swift为C中定义的结构定义双指针

来自分类Dev

如何在C中嵌套无结构的双指针?

来自分类Dev

使类型为结构体的成员成为双指针

来自分类Dev

Swift为C中定义的结构定义双指针