terminate called after throwing an instance of 'std::bad_alloc'↵ what(): std::bad_alloc↵
时间: 2023-11-18 14:48:00 浏览: 395
C程序设计教学课件:CHAPTER13EXCEPTIONHANDLING.pptx
当程序运行时发生"terminate called after throwing an instance of 'std::bad_alloc'"错误,并且错误信息为"what(): std::bad_alloc"时,这表示在程序运行过程中发生了内存分配错误。通常情况下,这是由于内存不足导致的。
在你提供的代码中,错误出现在CA类的构造函数中,你错误地将va变量用自己的vector变量来初始化,导致内存分配错误。正确的写法应该是将vb变量用来初始化va变量,即将"va(va)"改为"va(vb)"。
除了代码错误外,其他可能导致std::bad_alloc错误的原因还有:
1. 接口调用时传入的参数与接口定义不一致,可能导致内存分配错误。
2. 系统已占用的内存资源不足,导致无法分配足够的内存。
请检查你的代码中是否存在以上问题,并修正错误。如果问题仍然存在,请检查系统内存是否正常,并确保数据量不会过大导致内存不足。
阅读全文