栈溢出,死循环
int i = 0;
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
for (i = 0;i <= 12;i++)
{
printf("hehe\n");
arr[i] = 0;
}
return 0;
i和arr数组属于局部变量,在内存是从高位到低位进行存储的,而数组元素是以低位到高位进行传输的,所以在数组元素溢出的时候,就有可能遇到i,从而改变i的值,使程序陷入一个死循环。
栈溢出,死循环
int i = 0;
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
for (i = 0;i <= 12;i++)
{
printf("hehe\n");
arr[i] = 0;
}
return 0;
i和arr数组属于局部变量,在内存是从高位到低位进行存储的,而数组元素是以低位到高位进行传输的,所以在数组元素溢出的时候,就有可能遇到i,从而改变i的值,使程序陷入一个死循环。