我有这段代码,当顶部指针为null时会引发异常。但是,它会输入if语句并立即进行段错误。我没有在任何地方更改此指针的值,并且从调试中知道它进入了语句。
std::string LinkedStack::pop() {
if (!top) {
throw (std::out_of_range(""));
}
//...
这是抓手部分,我无法对其进行编辑,因为我是由教授提供的。
try {
testStack.pop();
std::cout << "FAIL: should have thrown exception from pop"<< std::endl;
}
catch(std::out_of_range& e){
printAssertEquals("Can't pop from an empty stack", e.what());
}
如果要紧,我正在使用Clion IDE并运行Windows计算机。我感觉这可能是系统问题,因为我与之交谈的每个人都无法知道问题出在哪里。谢谢!
编辑:这也是它崩溃时打印的输出消息,不过我看到它是调试器中的段错误:
抛出'std :: out_of_range'实例后调用terminate what():
进程以退出代码3完成