嵌套堆栈实现

Nested Stack Implementation

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

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.

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;