私の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];
スタックオーバーフローはコードが実行される前に発生するため、単体テストの先頭にあるブレークポイントはヒットしません。なぜこれが起こるのか考えていますか?回避策はありますが、何が起こっているのか知りたいだけです。