В моем проекте VC++ CPPUNIT следующий код в модульном тесте вызывает исключение переполнения стека:
const int n = 1000000;
const char *test[n];
Исключение первого шанса по адресу 0x00AD89E7 в Utilities_Tests.exe: 0xC00000FD: переполнение стека (параметры: 0x00000000, 0x00132000). Необработанное исключение по адресу 0x00AD89E7 в Utilities_Tests.exe: 0xC00000FD: переполнение стека (параметры: 0x00000000, 0x00132000).
Но это не так:
const int n = 1000000;
char test[n];
Переполнение стека происходит до выполнения кода, поэтому точка останова в верхней части модульного теста не будет достигнута. Любая идея, почему это происходит? У меня есть обходной путь, но мне просто любопытно, что происходит.