我使用 Visual Studio 2010
并激活了 代码分析
。在我的代码中有一行在函数中分配一些内存:
TCHAR someString[40000];
代码分析抛出警告信息:
warning C6262: Function uses '40000' bytes of stack: exceeds /analyze:stacksize'16384'. Consider moving some data to heap
我想知道我是否应该认真对待这个警告。如果我在堆栈上分配一些内存> 16384,我是否必须面对一些真正的麻烦?或者它只是一条一般性的警告信息,提醒我必须注意我的筹码量?据我所知,默认堆栈大小为 1MB(如果您使用 Visual Studio)。
最佳答案
不可否认,由于 VS(项目属性)确实报告默认值为 1M,因此该消息可能会造成混淆。但是,如果您查看 warning 的文本,您会注意到代码分析的限制实际上是 16k。按照该链接底部的步骤更正警告。
关于c++ - 有关堆栈大小的警告消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23269406/