2017-05-30 10 views
0

の間違った合計を与え、そして何らかの理由でXcodeは正しい合計はあるべき1606416234の値を出力10Xcodeは、私はXcodeとオンラインCコンパイラの両方で自分のコードをテストしているシンプルなC配列

#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は私にそのような大きな数字を与えますか?

答えて

4

forループが大きくなりすぎます。 i < nが必要で、<=ではありません。あなたは未知の記憶にアレイを過ぎて読んでいる。その余分な価値は何でも埋めることができます。場合によっては、コードが間違っていても誤って正しい結果を返すことがあります。

関連する問題