我试图理解这个编程问题,我应该猜测数据结构。我的程序有点问题。
问题:我不知道为什么我的程序总是被信号11(分段错误)杀死但是它的工作和编译很好。
关于程序:n是整数集的数量;它接受一个整数p(命令)和整数数据,并将/推送/弹出到以下数据结构中。我使用bool作为标志来检查状态。我是否正确地相信结构将在while循环之后被销毁,因为它超出了范围?
+------+---+-----+---+---+---+---+
| Name | 0 | 1 | 2 | 3 | 4 | 5 | <- Number columns are types from input
+------+---+-----+---+---+---+---+
| a | 5 | 4 | 1 | 0 | 5 | 5 |
| b | 2 | 4 | 1 | 5 | 5 | 0 |
| c | 5 | ... | | | | |
+------+---+-----+---+---+---+---+
答案 0 :(得分:1)
是的,您使用的数据结构是while的本地范围,因此它们会在while循环结束时被破坏。
除非你提供了你看到分段错误的输入,否则很难说。或者在调试模式下运行它,程序应该在发生seg错误的行中断。
答案 1 :(得分:-1)
我试图运行此代码。
当'isstack'更改为false后弹出此代码时抛出异常。
例外是'表达式:在弹出之前deque为空'。
变量变为false后,条件语句总是返回false。
所以你试图弹出空堆栈。
这是一个恰到好处的逻辑错误。