gpt4 book ai didi

c - 将文件读入链表

转载 作者:行者123 更新时间:2023-11-30 17:33:17 24 4
gpt4 key购买 nike

我正在尝试读取包含以下内容的文件。

59878, Moby Dick
442419, The Peach
535, Moby Dick
12, History of War

我有一个保存整数类型的链表,另一个保存字符和链表指针。这是后面链表中的一个节点:

typedef struct Node {
struct Node* prev;
char *title;
ListRef library; //Pointer to a different linked list
struct Node* next;
} Node;

typedef struct Node* NodeRef;

NodeRef newNode(char *bookTitle, List LL) {
NodeRef node = (Node*)malloc(sizeof(Node));
node->next = node->prev = NULL;
node->title = (char*)calloc(60, sizeof(char));
node->library = newList();
node->library = LL;
node->title = bookTitle;
return(node);

}

最佳答案

您应该将标题存储为

node->title = strdup(bookTitle); 

删除 calloc 行,因为 strdup 将为您分配内存。

<小时/>

正如当前编写的代码一样,您为字符串分配内存,但随后为该行分配内存

node->title = bookTitle;

更改指针,使其指向bookTitle指向的缓冲区。据推测,您正在重用 bookTitle 缓冲区,因此在程序结束时所有标题都指向同一个缓冲区,并且该缓冲区包含从文件中读取的最后一个标题。

关于c - 将文件读入链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23794503/

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