Уверен, что все зависит от ОС в отношении ошибки, а не от компилятора. Ваш пробег может варьироваться в зависимости от системы и от того, сколько памяти выделено для стека. И я предполагаю, что пока вы находитесь в заранее выделенном стековом пространстве, оно не будет зависать. Это то, что особенно неприятно - он может работать очень хорошо и не говорить вам, что есть проблема, кроме того, что если вам повезет, это приводит к ошибочным результатам.
Если бы вы попытались получить, скажем, a[10000]
- что-то, что ОС знает, не находится в пространстве ваших программ - что-то за пределами пространства, выделенного для стека, это вызвало бы ошибку.