在VS2019编译器中, 数组越界赋值会导致程序的死循环,下面来解释原因
内存中分为三块区域:栈区、堆区、静态区,其中栈区是存放局部变量的。
主函数中定义了局部变量 i 和 arr数组,存放在栈区中,栈区的使用习惯是先使用高地址,再使用低地址,而数组随着下标的增长,地址是由低到高变化的
在给数组内容重新赋值时,只要适当越界,就会覆盖到 i , i 如果被覆盖,循环结束的条件永远为假,程序就有可能死循环。
以上是在debug版本下。
在release版本却不会导致死循环,因为release版本做了优化,将arr数组放在了变量 i 的前面。



