を、私は、それぞれが次のように定義された領域私のプログラムでは30の動的に割り当てられた配列の周りに持っている:プログラムがクラッシュし、あまりにも多くの動的に割り当てられた配列をに値を割り当てるとき - C++
int Nx = 240;
int Ny = 240;
double* array = new double(Nx*Ny);
私はそれらの16に値を割り当てることができ、しかし、一度私は17日に到達すると、それはseg障害をスロー!
これはそれをスローするコードですが、これはまったく問題ありません。
for (int i = 0; i < Nx*Ny; i++) {
array[i] = 0;
}
私は本当に私は4GBのRAMを持っているので、私は不可能である必要があり、そのヒープが不足すると思ったが、その理由はわかりません! 私はMSVS15を使用しており、Windows 10上でプログラムを実行しています!
これはどうして起こりますか? 正確なエラー:
Exception thrown at 0x00298389 in ecostress.exe: 0xC0000005: Access violation writing location 0x01D2B000. If there is a handler for this exception, the program may be safely continued.
p.s.あなたのアプリケーションに適している場合は、 'std :: vector'を使うことを検討してください。 – Hurkyl
'memset'を使ってメモリをゼロにすることもできますが、これはおそらく高速です。 – Inline