最大内存分配?

时间:2013-07-08 15:59:52

标签: c++ arrays memory int limit

您好我正在尝试使用它:

std::tr1::array<std::tr1::array<queue<Graphnode>,MAXCPU>,MasterBufferNo> checkQueue;

但是如果MasterBufferNo或MAXCPU太大(MAXCPU = 4,MasterBufferNo = 30000),则会出现运行错误:

=====================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   EXIT CODE: 11
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
=====================================================================================

我想知道如何限制?或者问题是什么?我需要一个比这个大得多的数组...... Graphnode的大小是32字节。

由于

1 个答案:

答案 0 :(得分:1)

std::array是一个包含静态大小的C数组的包装器。这意味着这些数据将在堆栈上分配。堆栈分配的大小有一个上限。因此,最好的办法是通过sdt::vector动态分配。

一种可能性:

std::vector<std::array<std::queue<Graphnode>,MAXCPU>> checkQueue(MasterBufferNo);