我編寫了一個C++程序,它在編譯爲64位可執行文件時在Linux上正常工作。我還編它作爲Windows 32位可執行文件,並將它與下面的消息崩潰:32位/ 64位Windows/Linux應用程序
boost\boost_1_55_0\boost/test/minimal.hpp(123): exception "std::bad_alloc: bad allocation" caught in function: 'int __cdecl main(int,char *[])'
正如我必須分配大小20000 * 20000的整數矩陣,我告訴自己,我大概超過在32位平臺上允許的大小...
所以我編譯它爲64位Windows可執行文件,它工作正常。爲了檢查我的假設是否正確,我決定將它編譯爲32位Linux可執行文件,並且它也可以正常工作?所以,我不知道什麼飛機墜毀的原因可能是......
- 32位Windows =>碰撞標準bad_alloc的
- 64位Windows =>運行正常
- 32位Linux的=>運行正常
- 64位Linux =>運行正常
無法重現該問題。請與我們分享[mcve]。請注意,我們不需要完整的代碼,我們需要製造[mcve]。 –