涉及卸载的共享对象的内存泄漏?

时间:2018-03-02 05:17:05

标签: c++11 data-structures segmentation-fault abstract-data-type

我试图理解这个编程问题,我应该猜测数据结构。我的程序有点问题。

问题:我不知道为什么我的程序总是被信号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 | ... |   |   |   |   |
+------+---+-----+---+---+---+---+

2 个答案:

答案 0 :(得分:1)

是的,您使用的数据结构是while的本地范围,因此它们会在while循环结束时被破坏。

除非你提供了你看到分段错误的输入,否则很难说。或者在调试模式下运行它,程序应该在发生seg错误的行中断。

答案 1 :(得分:-1)

我试图运行此代码。

当'isstack'更改为false后弹出此代码时抛出异常。

例外是'表达式:在弹出之前deque为空'。

变量变为false后,条件语句总是返回false。

所以你试图弹出空堆栈。

这是一个恰到好处的逻辑错误。