私はいくつかの非常に大きなアレイ処理を行っています。私は次のグローバル宣言を行います:
`float array[200][1600][811];`
MS Visual Studio 2010でソリューションをビルドすると、次のエラーが発生します
LINK : fatal error LNK1248: image size (F85C8000) exceeds maximum allowable size (80000000)
今、私はこれが約1GBのプログラムメモリに相当することを知っています。しかし、この宣言はfloat [50][1600][811]
250MBの宣言に対して機能しました。デフォルトのスタックサイズは非常に限られていることを私は知っています。私がすでに試したことがいくつかあります。[プロパティ]->[リンカー]->[スタック予約サイズ]を使用して、VSのスタックサイズを増やしました。これは役に立ちませんでした。実行可能ファイルをx64モードで実行するように変更しました(最大2GBのメモリをアドレス指定すると言われています!)。これも役に立ちませんでした。
malloc
私は自分のコードでそれらが必要であることを確かに知っているので、配列に対してを実行したくありません。スタック/ヒープメモリを利用できるように、それらをグローバル宣言にする必要がありました。内で宣言するとMain ()
、メモリオーバーフローのエラーが発生します。
任意のポインタをいただければ幸いです。ありがとう。