-1
fscanf(ifile, "%c", &jnk);
/* If there's a height, this will be a ". if not, it'll be a ,*/
if ((jnk = '\"') || (jnk != ',')) {
    printf("%c", jnk);
    while(fscanf(ifile, "%c", &data) && data != ',' && data != '\"' && data != '\'') {
        printf(" %c ", data);
        weight[a]= data;
        a++;
    }
    weight[a] = '\0';
    player[n].weight=atof(weight);
    printf("%.0f ", player[n].weight);
} else if(data == ' ' || data == ',') {
    player[n].weight= 0;
    printf("%.0f ", player[n].weight);
}

GDBは、データを重みに格納すると、セグフォルトが発生することを通知します。誰でも理由を教えてもらえますか?

4

2 に答える 2

0

問題はここのどちらかだと思います

fscanf(ifile, "%c", &data)

また

 printf(" %c ", data);

データのデータ型によっては、この変数を解釈する方法に問題があり、定義したさまざまな変数の初期値によっても異なります。

于 2013-05-12T17:02:47.190 に答える