【发布时间】:2013-09-11 17:42:25
【问题描述】:
如果数组位置等于3,我正在尝试插入一个整数,但不幸的是,当我打印我的数组a 时,我得到了这样的荒谬结果:
0
0
2
而预期的结果是:
0
0
128
0
0
我的代码是:
#include<stdio.h>
int substitute_and_sum(int *a, int len)
{
int sum = 0, i;
for (i = 0; i < 5; i++)
{
if (i == 3)
{
a[i] = 128;
}
}
printf("%d\n", *a);
return 0;
}
int main()
{
int arr[] = { 0, 0, 2, 0, 0 };
int j = 5, i;
for (i = 0; i < 5; i++)
{
substitute_and_sum(&arr[i], j);
}
}
【问题讨论】:
-
substitute_and_sum中的循环超出了数组的边界,因为您在不同的索引处为其提供了数组,而不是数组的开头。