假设需要一个固定大小的缓冲区,是否有大小限制或阈值,以便在该大小限制下,可以使用快速堆栈分配{{1在这个限制之上,最好使用std::array
从堆中动态分配的内存(因为堆栈内存很宝贵,不应该消耗很多)?
std::vector
答案 0 :(得分:2)
没有官方限制。您可以增加或减少每个系统上的默认堆栈大小。
对于Visual Studio用户模式应用程序,堆栈大小的默认警告 16 Kb , 1 Kb < / strong>在内核模式下。一些静态分析仪工具使用相同的警告限制。
warning C6262: Function uses '30000' bytes of stack: exceeds /analyze:stacksize'16384'. Consider moving some data to heap
http://msdn.microsoft.com/en-us/library/7yhee2f0.aspx
这只是一个警告,但可以将其视为建议的堆栈分配限制。