本文主要是介绍C++ Linux运行 std::bad_alloc,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.C++程序在Linux上运行出现一个要命的问题:
terminate called after throwing an instance of ‘std::bad_alloc’ what(): std::bad_alloc
Aborted (core dumped)
但在笔记本上(windows)下没有出现这个问题,所以有点纳闷,当然程序的BUG,只能说专业不精!
2.查询问题后,大概明确了问题所在:
std::bad_alloc异常的发生一是内存不足,二是内存碎片太多,导致无法申请所需的完整内存。
- 判断是否内存泄露
- 判断是否死循环
参考1:https://stackoverflow.com/questions/15671255/c-terminate-called-after-throwing-an-instance-of-stdbad-alloc
参考2:https://developer.51cto.com/art/201306/397114.htm
3.思考:
(1)程序任务(我的)是执行一个读txt文件,是否在读文件的过程中出现某些变量的内存泄露,里面使用了vector,
(2)是否是程序中的循环无法退出?能在windows上运行,应该不是循环问题
经调试后找到的BUG函数:
这篇关于C++ Linux运行 std::bad_alloc的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!