Omk*_*ant -2 c arrays for-loop
我正在尝试其他的东西,但突然陷入这种无限循环.请建议一个答案,并解释下面的循环内容
#include<stdio.h>
int main()
{
int x=0;
int i;
int array[5];
for(i=0;i<=5;i++)
{
array[i]=x;
printf("#%d value set in index %d\n",x,i);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我=在for循环条件中删除符号它工作正常.
但是,当我把它放到无限循环时,为什么?在数组中访问额外元素(超过其限制)是未定义的行为还是什么?任何帮助将不胜感激.提前致谢.
〜
你将6个整数写入一个空格为5的数组.第6次写入超出了数组的范围,因此其效果是不可预测的.在你的情况下,它写入sizeof(int)堆栈的下一个字节.这是用于i循环计数器的内存,它被重置为0.
正如您在问题中所说,解决此问题的方法是将<=for循环的退出条件替换为<.
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |