【发布时间】:2019-03-10 14:39:26
【问题描述】:
我正在尝试先将数据插入Data 结构,然后将其解析为可以将其放入我的链表的insertFirst 函数。这都是在一个while循环中完成的。
while(fgets(line, 8, file) != NULL)
{
x= (Data*)malloc(sizeof(Data));
sscanf(line, "%s %s", line, val);
x->c = line;
x->v =val;
insertFirst(list, x);
}
但是我正在尝试重用 Data 结构。每次都Mallocing它。我遇到的问题是,尽管这些行被正确读取。
例如LOREM 1 和IPSUM 3,链表将始终包含IPSUM 3。如何在循环中重复使用这样的结构?
【问题讨论】:
-
val是如何声明的? -
您没有重用该结构。您只是在分配指向 same 字符数组的指针。考虑将
command和val作为数组成员 在Data和sscanf中直接使用。 -
另外,
sscanf可能会失败 -
什么是
Data?