0

テキスト ファイルから情報を読み込んで画面に表示するプログラムがあります。情報を表示すると、無限ループに陥ります。私の人生では、理由を理解できません(リンクリストとCについての私の非常に限られた理解に任せてください)。ここに構造体:

他の人の投稿で、エラーがロードで発生した可能性があることを見ました。そこで無限ループに陥ると思いますが、最後の「次」をNULLなどに設定しないと問題が発生する可能性があります。ここにあります:

void loadtimes()
{
    FILE *fileName = fopen("saved_times.txt","r");
    char input[MAX_STR_LEN];
    int counter=1;
    struct PlayerTime *p;

    p=(struct PlayerTime*)malloc(sizeof(struct PlayerTime));

    ...

    if(fileName!=NULL){
        while((fgets(input,MAX_STR_LEN,fileName)!=NULL)){
            if(counter==1){
                p->seconds=atoi(input);
            }
            if(counter==2){
                strcpy(p->name,input);
                counter=0;
                p->next=list_head;
                list_head = p;
            }
            counter++;
        }
    }
}

うまくいけば、それは私が間違っていた些細なことです。誰でも助けてもらえますか?

4

1 に答える 1

3

1 つの構造体にのみメモリを割り当てます。

 p=(struct PlayerTime*)malloc(sizeof(struct PlayerTime));

より多くのリストノードを期待しているので、ループ内でもこれを行う必要がwhileありますか?

于 2013-10-01T03:17:07.177 に答える