0

ファイルからいくつかの情報を読み取り、それを画面に表示するリンク付きリストがあります。すべてが正しく読み込まれますが、「秒」を表示すると、表示される数字は-431602080.000000、たとえば27.123000. 理由がわかりません。

 //GLOBAL VARIABLES
    struct PlayerTime* list_head = NULL;

    void besttimes_view()
    {   
        struct PlayerTime *p;
        p = list_head;

        while(p!=NULL){
            printf("%f : %s\n", p->seconds, p->name); //This prints the name correctly, but the number is wrong. Something like -431602080.000000 : Calvin
            p = p->next;
        }
    }

何が起こっているのか誰にも分かりますか?

4

2 に答える 2

1

ブランチpの外に割り当てているという事実から始めます。counter==1つまり、次のことを行います。

  1. 新しいp
  2. counter==1、だからあなたはそれに時間を入れます、
  3. 増加counter,
  4. 新しいものを割り当てますp(そして前のものを破棄します)
  5. counter==2、名前を入れて保存し、
  6. ...

malloc()内部で発生させたいと思いますif (counter==1)

次に、カウンターをリセットしないため、次のすべてのプレイヤーはそれ以降何も得られませんcounter==3

于 2013-10-01T03:54:49.837 に答える