我已经在Xcode和在线C编译器中测试了我的代码,并且由于某种原因,当正确的总和应该为10时,Xcode会打印值1606416234。
#include <stdio.h>
int sum_array(int x[], int n);
int main(void) {
// insert code here...
printf("Hello, World!\n");
int y[4]={1,2,3,4};
printf("%d\n", sum_array(y, 4));
return 0;
}
int sum_array(int x[], int n){
int i, sum=0;
for (i= 0; i<=n; i++){
sum+=x[i];
}
return sum;
}
为什么Xcode会给我这么大的数字?
答案 0 :(得分:4)
你的for
循环太过分了。您需要i < n
,而不是<=
。您正在读取数组到未知的内存。这个额外的价值可以用任何东西填充。在某些情况下,即使代码错误,它也可能是0意外地给了你正确的结果。