繁体   English   中英

打印链表会导致无限循环(C)?

[英]Printing linked list causes infinite loop (C)?

我有一个程序应该从文本文件加载一些信息,然后将其显示在屏幕上。 显示信息时,我陷入了无限循环。 对于我的一生,我无法弄清楚原因(我对链接列表和C的理解非常有限)。 这里的结构:

我在其他人的帖子中看到该错误可能是由加载引起的。 我想我会在那里陷入无限循环,但是也许我在不将最后一个“ next”设置为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++;
        }
    }
}

希望这是我做错的小事。 有人可以帮忙吗?

您只为一个结构分配内存,

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

您也应该在while循环内执行此操作,因为您希望有更多的列表节点,对吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM