您好,我在使用 C 中加载结构链接列表时遇到了一些问题,该列表包含在程序最初运行后创建的文件的内容。我已经为此工作了几天,似乎不明白我做错了什么,因为我相信这应该有效。我不断收到内存访问冲突,我假设这要么来自我使用节点填充结构的方式,要么我没有在程序退出时释放内存。这是一个家庭作业,我知道你们对这些类型的问题不屑一顾,所以请随意不要回答,并认为我是个白痴。我不是在寻找答案,但我显然不理解某些东西。
最后一件事是我的文件关闭被评论的原因是,当它处于活动状态时,我看不到我的程序打印到控制台的内容。没有它,我可以看到文件的输出,直到它到达文件中新创建的链接列表的末尾。
{
FILE* filename; //create FILE pointer
struct PlayerTime *node, *temp; //create a PlayerTime struct pointer node
char sname[MAX_STR_LEN]; //specifies type of data to be stored
float stime; //specifies type of data to be stored
filename = fopen("SAVE_TIMES.txt", "rb"); //sets saveTimes pointer = to an open file
if(filename != NULL) //if file is there
{
while((fread(sname, MAX_STR_LEN, 1, filename)) == 1)
{
node = (struct PlayerTime *) malloc(sizeof(struct PlayerTime)); //create a node
strcpy(node->name, sname); //copies name data from file into node
fread(&stime, sizeof(float), 1, filename); //reads time and passed by reference
node->seconds = stime; //copies seconds data from file into node
if(list_head != NULL) //loop reads PlayerTime lis_head
{
temp->next = node; //loop fills struct with saved times
}
else
list_head = node;
temp = node;
}
//fclose(filename);
}
}