我正在编写一个程序来测试功能。但是,当我声明具有一定大小的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创建器执行代码,并使用MinGW编译器。

在我的项目的稍后部分,我将使用尺寸为12/13的数组,每个尺寸的长度在100到1000之间,因此我确实需要使用它。

提前致谢!

最佳答案

RAM内存已超出。

double占用8个字节-> 1000x1000x1000 doubles = 8 GB的所需RAM。

08-26 20:14
查看更多