本文主要是介绍产生std::bad_alloc异常的一种特殊情况,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天碰到了一个关于std::bad_alloc异常的比较特别的情况,特此记录一下:
调试代码的过程中,突然抛出std::bad_alloc异常,查看堆栈,全都是运行时库和windows库的堆栈,看不出什么有用信息;
幸运的是,这个问题比较好复现,经过多次复现和打断点,发现问题出在一个消息处理函数里;
最终定位,出问题的代码如下:
char* p = new char[lDataLen]; //lDataLen = -20;
lDataLen是从其他exe中传过来的,这里传了一个负数,导致了std::bad_alloc;
之前一直都以为只有内存不足才会导致std::bad_alloc,特此记录一下。
这篇关于产生std::bad_alloc异常的一种特殊情况的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!