天天看點

C++ 編譯錯誤記錄

C++ `_ZSt28__throw_bad_array_new_lengthv1` 編譯錯誤

出現場景:類似代碼 <code>vector&lt;vector&lt;int&gt;&gt; grid = {{1, 2, 3}, {4, 5, 6}};</code> 導緻 C++ 調試閃退

重新在終端下使用 <code>g++ test.cpp -o test.exe -g -std=c++11 -Wall</code> 進行編譯,得到的 .exe 出現如下錯誤提示

出現調試閃退時,可以先換其他編譯器試運作來排除代碼自身錯誤(MSCV-VS)。在确認自身代碼無誤的情況下,在終端下使用指令編譯也許會得到更多的錯誤資訊。

經測試,<code>_ZSt28__throw_bad_array_new_lengthv1</code> 錯誤在 <code>gcc 8.1.0</code> 和 <code>gcc 11.2.0</code> 下均會出現,解決方法:将 gcc 版本回退到 <code>10.2.0</code>

下載下傳位址:https://winlibs.com/

在終端,你可以通過 <code>g++ -v</code> 或者 <code>gcc -v</code> 來檢視自己使用的 gcc 編譯器版本

貼一下對應的 json 配置以便重制錯誤

lanuch.json

tasks.json