私は10個の配列を扱っていますが、そのうちのいくつかは1024x1392の2倍です。C++/CLIで2D配列のメモリが不足していますか?
私は動的にヒープ上に割り当てるために試してみた:
double **x_array;
x_array = new double*[NUM_ROWS];
for(int i=0; i < NUM_ROWS; i++) {
x_array[i] = new double[NUM_COLS];
}
for(int ix=0; ix < NUM_COLS; ix++) {
for(int iy=0; iy < NUM_ROWS; iy++) {
x_array[ix][iy]=(x1y1*(ix+1) + x2y1*(iy+1) + x3y1);
//y_array[ix][iy]=(x1y2*(ix+1) + x2y2*(iy+1) + x3y2);
}
}
}
が、私はまだエラーが
unhandled exception: System.Runtime.InteropServices.SEGException: External Component has thrown an exception. at line 106
と106私は上記のコードで配列を初期化し始めるところであると言ってます:
x_array = new double*[NUM_ROWS];
私は本当にスペースが足りないのですか、何か間違っていますか?
Windows 7、VS 2008、コンパイラについて不明です。 P – Andrw
「sizeof(double)== 8」が114032640バイト、つまり108.75MBになるシステムでは、1024×1392の10個の配列がレコードとして2倍になります。 –
それを得るためにはうまくいったw.r.t. '配列へのポインタの配列'と '配列の配列'です。親切なフレンドリーな 'double **'型が得られるのであなたの方法は良いです。つまり、 'std :: vector'は簡単です。デバッガは何を言っていましたか? –