【发布时间】:2014-11-01 17:30:35
【问题描述】:
我正在使用一个结构如下的链表:
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 在行尾,但是当 count 为 1 时您正在为其分配令牌
-
对不起,我忘了提,文件的每一行都有一个特定的模式,我需要在位置 1 和 3 上的变量。token 是我保存从 strtok 获得的值的名称跨度>
标签: c memory-management linked-list dynamic-memory-allocation