嵌套堆栈实现
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;
我正在尝试实现嵌套堆栈结构,基本上是封装在自定义堆栈中的标准堆栈。我正在上传代码。
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;