gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:24:57 25 4
gpt4 key购买 nike

我有一个程序应该从文本文件中加载一些信息,然后将其显示到屏幕上。当我显示信息时,我遇到了无限循环。对于我的一生,我无法弄清楚为什么(我确信我对链表和 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++;
}
}
}

希望这是我做错的微不足道的事情。有人可以帮忙吗?

最佳答案

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

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

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

关于c - 打印链表导致无限循环(C)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19107315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com