实现堆栈而不进行动态内存分配

时间:2016-02-22 04:26:25

标签: c++ stack

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;
}

我尝试以这种方式实现没有动态内存分配的堆栈,但是我没能使它工作。关于我应该做些什么以使其有效的任何提示?

1 个答案:

答案 0 :(得分:0)

您正在获取临时变量的地址。在push中,你创建一个局部变量'new',取其地址,然后当函数退出时,它是一个无效的指针。

如果您的解决方案将变得强大,则需要为此任务使用动态内存分配。