最大内存分配

Max memory allocation?

本文关键字:分配 内存 大内      更新时间:2023-10-16

嗨,我正在尝试使用这个:

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

感谢

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

一种可能性:

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