【发布时间】:2012-01-04 10:10:07
【问题描述】:
我想使用链表实现堆栈。
为了为我的堆栈实现 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;
}
我遇到的问题是试图取消对双指针 **stack 的引用。此代码生成以下错误:
error: request for member ‘value’ in something not a structure
error: request for member ‘next’ in something not a structure
在我看来,*stack->value 或 **stack.value 应该可以检索 popped_value,但我得到了相同的错误。
【问题讨论】:
-
只要用好人
stack-->next