Xcode为简单的C数组提供错误的总和

时间:2017-05-30 18:28:44

标签: c arrays sum

我已经在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会给我这么大的数字?

1 个答案:

答案 0 :(得分:4)

你的for循环太过分了。您需要i < n,而不是<=。您正在读取数组到未知的内存。这个额外的价值可以用任何东西填充。在某些情况下,即使代码错误,它也可能是0意外地给了你正确的结果。