嵌套堆栈实现

时间:2015-02-06 22:29:40

标签: c++ stl segmentation-fault stack

我正在尝试实现嵌套的堆栈结构,基本上是封装在自定义堆栈中的标准堆栈。我正在上传代码。

struct Advstack
{
    stack* mainStack=NULL;
};

void pushNew(struct Advstack* new_stack, int val)
{
    new_stack->mainStack->push(val);
}

int main()
{
    struct Advstack* new_stack;
    pushNew(new_stack, 2);
}

这段代码给了我segmentation fault,我无法弄清楚为什么这样做。{ PS:我已经包含了必需的头文件,即 bits / stdc ++ stack

1 个答案:

答案 0 :(得分:1)

new_stack未初始化。在使用之前,您需要创建Advstack的实例。您也永远不会将其成员mainStack分配给实际堆栈。这应该可以修复你的段错误:

    struct Advstack* new_stack = new Advstack;
    new_stack->mainStack = new stack<int>();
    pushNew(new_stack, 2);
    delete new_stack->mainStack;
    delete new_stack;