【发布时间】:2015-06-05 03:45:07
【问题描述】:
我目前正在尝试在 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 应该可以工作?
【问题讨论】: