私は、64ビットの実行可能ファイルとしてコンパイルされたときにLinux上でうまく動作するC++プログラムを書いています。私はまた、Windows上で32ビットの実行可能ファイルとして、それをコンパイルし、それが次のメッセージでクラッシュ:私はサイズ20000 * 20000の整数の行列を割り当てる必要が通り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 *[])'
、私はおそらく超えたことを自分自身に語りました32ビットプラットフォームで許容されるサイズ...
私はそれを64ビットWindows実行可能ファイルとしてコンパイルしても問題ありません。私の前提が正しいかどうかを確認するために、私はそれを32ビットのLinux実行可能ファイルとしてコンパイルすることにしました。だから私は、クラッシュの原因は、標準bad_alloc
- 32ビットWindows =>クラッシュ何ができるかについては考えていますLinuxの=>
- 64ビットLinux OK実行=> OK実行
問題を再現できません。 [mcve]を私たちと共有してください。注:完全なコードは必要ありません。製造された[mcve]が必要です。 –