Я пишу программу для тестирования функции. Тем не менее, я получаю сообщение об ошибке, когда я объявляю boost :: multi_array, который имеет определенный размер. Я получаю следующую ошибку:
прекращение вызова после выброса экземпляра ‘std :: bad_alloc’
что (): std :: bad_alloc
Мой код выглядит так:
#include <boost/multi_array.hpp>
#include <boost/array.hpp>
boost::multi_array<double,3> test ;
test.resize( boost::extents[1000][1000][1000] ) ;
Я получаю сообщение об ошибке, если я объявляю двумерный массив multi_array или объявляю трехмерный массив multi_array размером 10x10x10 и 100x100x100.
У кого-нибудь есть идеи, чтобы это исправить? Это проблема компилятора или как-то так?
Я выполнил код с использованием Qt Creator и использую компилятор MinGW.
Позже в моем проекте я буду использовать массивы с размером 12/13, и каждое измерение будет иметь длину от 100 до 1000, поэтому мне действительно нужно, чтобы это работало.
Заранее спасибо!
Объем оперативной памяти превышен.
double занимает 8 байтов -> 1000x1000x1000 doubles = 8 гигабайт требуемой оперативной памяти.
Других решений пока нет …