0

嗨我正在尝试使用这个:

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 字节。

谢谢

4

1 回答 1

1

std::array是静态大小的 C 数组的包装器。这意味着这些数据将在堆栈上分配。堆栈分配的大小有一个上限。所以你最好的选择是通过sdt::vector.

一种可能:

std::vector<std::array<std::queue<Graphnode>,MAXCPU>> checkQueue(MasterBufferNo);
于 2013-07-08T16:03:54.697 回答