都是C语言堆栈溢出为何一个可以在vs2015运行,一个不能?

图片说明
我把数组改成a[1000000]也是提醒超过栈的大小,但为什么都是超过vs2015的堆栈大小,图片的能运行,改成a[1000000]运行就卡死了?

好比开车,超过了路的宽度一点点,踩到人行道了,未必会出事。但是超过很多,撞过栏杆掉河里去了,性质就不一样了。

警告 C6262:函数使用了堆栈中的 个字节: 超过了 /analyze:stacksize。请考虑将某些数据移到堆中
此警告指出在函数内检测到了超出预设阈值的堆栈使用率。默认情况下,当堆栈大小超过 16K 字节时会生成此警告。堆栈是有限的,甚至在用户模式下也是如此,如果无法提交堆栈页,会导致堆栈溢出异常。_resetstkoflw 函数可以将系统从堆栈溢出的情况恢复为正常,从而使程序得以继续运行,而不会由于出现异常错误而失败。如果未调用 _resetstkoflw函数,则在上一个异常后不会显示保护页。当下次发生堆栈溢出时,根本不会显示异常,进程将在没有任何警告的情况下终止。
若要更正此警告,1。既可以将一些数据移至堆,2。也可以增加堆栈大小。无论采取哪一种更正措施,在对代码进行更改前均应考虑到所用方法的利弊。