-1

私はこれに1時間以上苦労してきましたが、なぜこのエラーが発生するのかわかりません。

int  inp, count;
char numBuff[21];

count = 0;
while((inp=getchar()) != EOF) { // get Value (last field)
    printf("input is '%c'\n", inp);
    if (inp == '\n') break;
    if (inp == ' ') {
        continue;
    }
    numBuff[count++] = inp;
    printf("go back through loop\n");
}
printf("Out!");
numBuff[count] = '\0';

1013 を入力すると、次のようになります

input is '1'
go back through loop
input is '0'
go back through loop
input is '1'
go back through loop
input is '3'
go back through loop
input is '
'
Segmentation fault (core dumped)

これから収集できる唯一のことは、 inp == '\n' かどうかを確認すると失敗することですが、なぜですか? inp == '\n' のチェックの直後にループ printf を介して戻るように移動しましたが、そこにも到達しなかったため、そこで発生していることがわかります。

4

2 に答える 2

6

count配列インデックスとして使用される初期化されていません。0 に初期化します。

于 2013-04-19T22:57:02.180 に答える