Слишком большой массив boost_multi? ошибка bad_alloc

Я пишу программу для тестирования функции. Тем не менее, я получаю сообщение об ошибке, когда я объявляю 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, поэтому мне действительно нужно, чтобы это работало.

Заранее спасибо!

0

Решение

Объем оперативной памяти превышен.

double занимает 8 байтов -> 1000x1000x1000 doubles = 8 гигабайт требуемой оперативной памяти.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector