我正在尝试用我从用户那里获得的数字填充我的int数组。
但是当我尝试printf
一个比那个更大的特定索引时,它会显示错误的数字。
for(B_index=0,checker=0; B_index<SIZE&&!checker; B_index++)
{
checker=scanf("%d",&B[B_index]);
if(checker==EOF)
{
checker=1;
}
else if(checker<1)
{
printf("error");
return 1;
}
}
printf("%d",B[1]);
答案 0 :(得分:1)
scanf返回分配的数量,因此如果您在控制台上输入了有效的整数,则scanf将返回1,这意味着它为B [0]分配了一个整数(由于%d)。这会导致检查器为1,因此在输入第一个数字后会立即中断循环。 B [1]未分配,因此如果清除了数组,则包含垃圾或0。