在我的 VC++ CPPUNIT 项目中,单元测试中的以下代码会导致堆栈溢出异常:
const int n = 1000000;
const char *test[n];
Utilities_Tests.exe 中 0x00AD89E7 处的第一次机会异常:0xC00000FD:堆栈溢出(参数:0x00000000、0x00132000)。Utilities_Tests.exe 中 0x00AD89E7 处的未处理异常:0xC00000FD:堆栈溢出(参数:0x00000000、0x00132000)。
但这不会:
const int n = 1000000;
char test[n];
堆栈溢出发生在代码执行之前,因此不会命中单元测试顶部的断点。知道为什么会这样吗?我有解决方法,但我只是好奇发生了什么。