Я использую визуальную студию 2008 для разработки. Моя программа должна иметь дело с огромным объемом памяти. Ошибка возникает, когда моя программа пытается выделить 512M поплавковый массив. Код:[Проблема с распределением памяти] Необработанное исключение: исключение Microsoft C++: std :: bad_alloc в ячейке памяти
int size = 512*512*512;
float *buffer = new float[size];
Перед этим распределением программа уже потребляет около 554 Мб памяти. Мой рабочий стол имеет основную память 4G, и я использую Windows xp 32bits.
Как избежать ошибки распределения? Большое спасибо за ваш вклад!
Не решение, но почему вы не используете 'std :: vector'? – GManNickG
Как это 512M? Инициализация переменной должна быть 'int size = 512 * 1024 * 1024;'. Кроме того, я бы изменил тип данных 'size' на' size_t'. – Praetorian
Есть ли причина, по которой вам нужен массив 512M (128M * sizeof (float))? Можете ли вы разбить это на более мелкие куски? Можете ли вы перейти на 64-битную систему с большей памятью? –