struct Node {
int value;
Node *n;
};
void push (Node *front, int value) {
Node new;
new.n = front;
new.value = value;
Node *newPtr = &new;
front = newPtr;
}
int pop (Node *front) {
int n = front->value;
front = front->n;
return n;
}
我尝试以这种方式实现没有动态内存分配的堆栈,但是我没能使它工作。关于我应该做些什么以使其有效的任何提示?
答案 0 :(得分:0)
您正在获取临时变量的地址。在push中,你创建一个局部变量'new',取其地址,然后当函数退出时,它是一个无效的指针。
如果您的解决方案将变得强大,则需要为此任务使用动态内存分配。