gpt4 book ai didi

c - 从文件制作链接列表有什么问题

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:26 27 4
gpt4 key购买 nike

我想从这个文件创建一个链表:

asd
aids
iwill

这是创建链表并返回其头部的函数:

firstNames* insertOfFirstNameF(FILE* file){
char name[15];
firstNames* head,*newPtr,*temp;
while((head=(firstNames*)(malloc(sizeof(firstNames))))==NULL);
fgets(name,12,file);
head->name=name;
head->linkPtr=NULL;
temp=head;
while(fgets(name,12,file)){
while((newPtr=(firstNames*)(malloc(sizeof(firstNames))))==NULL);
newPtr->name=name;
newPtr->linkPtr=NULL;
temp->linkPtr=newPtr;
temp=newPtr;
}
return head;
}

struct firstNames 有两个字段,我在我的代码中都使用了它们。

这是主要功能:

int main(){
FILE* file;
file=fopen("firstnames.txt","r");
firstNames* head=insertOfFirstNameF(file);
fclose(file);
}

我扩展它返回一个头,它的名称字段是“asd”(文件的第一个)但它的名称字段是“iwill”;

我的代码有什么问题?

最佳答案

name 是一个局部变量,它的内容在函数返回后将不再存在,我建议快速修复

head->name=strdup(name);

newPtr->name=strdup(name);

你应该记住 free 列表中每个节点的 name 成员,并且不要强制转换 malloc 在 c 中

关于c - 从文件制作链接列表有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723331/

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