在函数调用时获得堆栈溢出
Getting stack overflow on function call
我有一个基类,三个类从它继承。每当在函数中实例化这些子类时,就会在函数进入函数体时发生堆栈溢出。它们可以在接近结尾或开头时实例化,这无关紧要。一旦进入函数体,就会出现堆栈溢出。如果删除了类,则函数可以正常运行。子类只包含一个被重写的函数,以及它们的构造函数和析构函数。构造函数和析构函数都为空。
int main()
{
Borrow borrow;
MovieStore store( "STORE!!!!!!" );
store.initalize();
store.processTransaction();
return 0;
}
不确定这有多大帮助,但基本上借用是子类。一旦进入函数体,就会导致堆栈溢出。即使我在返回0之前实例化它,它仍然会在进入函数体时崩溃。如果它被删除,程序运行正常。我实际上是在一个不同的函数中声明borrow (main更短),但无论它被放入哪个函数,它都具有相同的效果。
class Borrow : public Transaction
{
public:
Borrow();
virtual ~Borrow();
virtual void perform( Customer *, Item * );
};
Borrow和其他子类是一样的。空构造函数和析构函数,带有一个覆盖的虚函数。
执行的实现是:
void Borrow::perform( Customer *customer, Item *aMovie )
{
customer->addMovie( aMovie, "B" );
}
我猜你的函数是递归的,你从来没有停止调用它
多亏了UncleBens,我能够弄清楚具有大对象的类被实例化多次,从而创建堆栈溢出。
相关文章:
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 我的 int main() 中出现堆栈溢出错误
- C++ 对象数组堆栈溢出
- 有没有一种方法可以捕获进程中的堆栈溢出?C++Linux
- 对象接收堆栈溢出异常 c++ 的排序向量
- 将公共递归转换为尾递归,因为大型输入的堆栈溢出
- C++ 中递归期间的堆栈溢出
- 启动 dll 时 C# 环境堆栈溢出
- 在C++中使用数组时如何防止堆栈溢出?
- 如何修复递归函数导致的堆栈溢出错误?C++
- 当我尝试为结构分配新指针时出现堆栈溢出错误
- 为什么析构函数无休止地调用自己(导致堆栈溢出)?
- 为什么堆栈溢出?如有建议,不胜感激
- 主函数执行时C++堆栈溢出异常
- 如何在不导致堆栈溢出的情况下计算非常大的数字和很小的 HCF.我正在使用欧几里得算法
- 我正在尝试使用回溯来解决 N queen 问题,但在编译时它会给出运行时错误(动态堆栈缓冲区溢出)
- 如何在Windows上报告堆栈缓冲区溢出
- 如何抑制来自 gcc 中地址清理器的堆栈缓冲区溢出
- 声明大数组时堆栈/堆溢出
- c++中栈溢出和分段错误的危险