我想用链表实现堆栈。为了实现我的栈的pop(),我让调用者传递一个双指针(指针指向)(最终)指向我堆栈的顶部(链表中的第一个条目)。解决双引号问题
我这样做的原因是因为这样调用者可以保持一个静态指针到堆栈。
我的链表元素结构:
struct Element {
int value;
struct Element *next;
};
pop()方法实现:
int pop (struct Element **stack) {
int popped_value = *stack->value;
*stack = *stack->next;
return popped_value;
}
我有问题试图取消引用双指针**堆栈。此代码生成以下错误:
error: request for member ‘value’ in something not a structure
error: request for member ‘next’ in something not a structure
在我的脑海里,无论是*重新建立了新>值或** stack.value应该努力找回popped_value,但我得到了相同的错误。
只要使用好醇'堆栈 - >下一个' – Kapichu