C++ Я около +30 динамически выделенных массивов в моей программе, что площадь каждый определенную как следующее:сбоя программы при назначении значения слишком много динамически выделенных массивов -
int Nx = 240;
int Ny = 240;
double* array = new double(Nx*Ny);
можно присвоить значения 16 из них, но как только я доберусь до 17-го, он бросает сегрегат!
Это код, который бросает его, что совершенно нормально!
for (int i = 0; i < Nx*Ny; i++) {
array[i] = 0;
}
Я действительно понятия не имею, почему я думал бежать из кучи, но так как у меня есть 4 Гб оперативной памяти, что должно быть невозможно! Я использую 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