C11中,数组越界会导致程序崩溃,例如在微软的VS上。
#include <stdio.h>
int main()
{
int i;
int arr[10];
for (i = 0; i <= 10; i++)
{
arr[i] = 0;
printf("%d\n", i);
}
return 0;
}
当i=10,进入for循环,因为数据进栈出栈的原因,执行arr[i]=0时,将i=10改成i=0,造成程序死循环,而崩溃。(VS在每个变量后都加了俩个“炸弹”,一旦越界则使得程序崩溃)