可能な二重に> 1GBのメモリアレイを割り当てるためのコードが必要になります。私はCUDA/OpenCVのなしで使用する場合、私はこのコードを初期化することはできません
how to increase memory limit in Visual Studio C++は動的にVisual StudioのC++
。
#include<iostream>
using namespace std;
int main()
{
double *arr,*arr2,*arr3;
arr=new double[100000000];
arr2=new double[100000000];
arr3=new double[100000000];
//std::bad_alloc at memory location 0x001ff700 error is what I get when I try to allocate 2.4gb out of 3.3gb available.
return 0;
}
私は、Windows対Linuxをcompatibilites不満、私はちょうど、Windowsのサーバマシン上でこのコードの実行を作りたいわけではないので、私が限界のような種類が行ういるWindows用の任意のC++コンパイラにオープンしています発生しません。 ありがとう
割り当てコードを記入してください。 – ybungalobill
そのコードは、gccで完全に機能する主にCUDA/OpenCVベースのコードの1行でした。 mallocまたはnewを実行すると、スタックのオーバーフローが発生します。また、私はOpenCV形式であまりにも多くの画像を取得しようとするとstackoverflowを取得します(この記事のメモリ制限の問題のリンクを参照してください)。 – daerty0153
そこに投稿したコードでは、スタックに* 1.4GB **のメモリ*を割り当てます。あなたはそれをすることはできません。私はあなたがmalloc、おそらく別のエラーを使用するとき、またはあなたが何かを理解していない可能性がstackoverflowを得るとは思わない。とにかく、これはあなたが問題を再現する関連する*最小*コードだけを投稿すべき理由です。また、 "Win32"ではなくx64 *のアプリケーションをコンパイルしてください。何らかの理由でVisual Studioがデフォルトで32ビット用にコンパイルされます。 – ybungalobill