您好我正在尝试使用它:
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字节。
由于
答案 0 :(得分:1)
std::array
是一个包含静态大小的C数组的包装器。这意味着这些数据将在堆栈上分配。堆栈分配的大小有一个上限。因此,最好的办法是通过sdt::vector
动态分配。
一种可能性:
std::vector<std::array<std::queue<Graphnode>,MAXCPU>> checkQueue(MasterBufferNo);