gpt4 book ai didi

c - 将 2 个值插入链表节点

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

我正在使用一个链表,其结构如下所示:

struct theStruct{
int variable1;
char* variable2;
struct theStruct* next;
};

如您所见,我想在每个节点中插入两个变量。我遇到的问题是我目前正在从一个文本文件中读取变量 1 是在行的开头获得的,变量 2 是在末尾获得的,所以我无法同时将它们放入(至少我不是意识到)。我就是这样写的,但没有成功。

...
reading file
....
while(token != NULL)
{
if(counter == 1)
{
newToken = token;
}

if(counter == 3)
{
temp = (theStruct*)malloc(sizeof(theStruct));
temp->variable1= atoi(token);
temp->variable2 = newToken;
temp->next = head;
head = temp;
}
...

之后,当我尝试打印时,我只从 temp->variable1 和 temp->variable2 中获取值,其中包含一些奇怪的字符。我想以某种方式保留第一个变量,直到获得另一个变量而不为临时分配新内存,但我不知道如何执行此操作。我希望我为你们提供了足够的信息,可以给我一些线索或线索来解决我的问题。

最佳答案

当你说:

temp->variable2 = newToken;

您正在将 temp->variable2 指向您首先传递给 strtok() 的任何内容的中间位置——这很可能会被覆盖。您可能想要复制它:

temp->variable2 = strdup(newToken);

这是一些人认为 strtok() 充满危险的原因之一。

关于c - 将 2 个值插入链表节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25725221/

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