数组越界知道不?
main()
{
int a[3]={1,2,3};
int i;
for(i=0;i<=2;i++)
a[i]=i;
printf("%d",a[i]); /*这里i=3,a[3]就是越界了*/
getch();
}
修改
main()
{
int a[3]={1,2,3};
int i;
for(i=0;i<=2;i++)
{
a[i]=i;
printf("%d",a[i]);
}
getch();
}
我觉得应该是这样的,for循环结束之后i是等于3的,而a[3]是没有赋值的,所以系统输出一个随几数,刚才我运行了一下,输出的就是-18
注意你的输入语句是:
printf("%d",a[i]); 是打印的a[3]指向的这段内存,而这段内存区域你并没有指定任何初始值。
注意,a[3]是从a[0]开始的,3其实是0.1.2
另外{}也有问题
for(i=0;i<=2;i++)
{
a[i]=i;
printf("%d",a[i]);
getch();
}
for(i=0;i<=2;i++)
a[i]=i;
运行后i=3
a[3]=?
越界,-34