C++ _ZSt28__throw_bad_array_new_lengthv1
编译错误
出现场景:类似代码 vector<vector<int>> grid = {
{1, 2, 3}, {4, 5, 6}};
导致 C++ 调试闪退
重新在终端下使用 g++ test.cpp -o test.exe -g -std=c++11 -Wall
进行编译,得到的 .exe 出现如下错误提示
出现调试闪退时,可以先换其他编译器试运行来排除代码自身错误(MSCV-VS)。在确认自身代码无误的情况下,在终端下使用命令编译也许会得到更多的错误信息。
经测试,_ZSt28__throw_bad_array_new_lengthv1
错误在 gcc 8.1.0
和 gcc 11.2.0
下均会出现,解决方法:将 gcc 版本回退到 10.2.0
下载地址:https://winlibs.com/
在终端,你可以通过
g++ -v
或者gcc -v
来查看自己使用的 g