boost_multi数组太大了? bad_alloc错误

时间:2016-02-14 16:42:42

标签: c++ memory-management boost bad-alloc boost-multi-array

我正在编写一个测试功能的程序。但是,当我声明具有特定大小的boost :: multi_array时,我收到错误。我收到以下错误:

  

在抛出' std :: bad_alloc'的实例后终止调用     what():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] ) ;

如果我声明了2D multi_array,或者我宣布了一个尺寸为10x10x10和100x100x100的3D multi_array,我就不会收到错误。

有没有人有任何想法解决这个问题?这个问题与编译器有关吗?

我使用Qt creator执行代码,并使用MinGW编译器。

稍后在我的项目中,我将使用尺寸为12/13的数组,每个尺寸的长度在100到1000之间,所以我真的需要这个。

提前致谢!

1 个答案:

答案 0 :(得分:1)

RAM内存超出。

double占用8个字节 - &gt; 1000x1000x1000双倍= 8千兆字节所需的RAM。