【发布时间】:2010-03-09 15:17:05
【问题描述】:
这不是家庭作业,只是因为我已经离开学校 20 多年了,而且我根本不需要使用链表来处理任何事情。所以我在这里没有我的元素。 反正我有
struct Data_Struct {
char *Name;
char *Task;
char *Pos;
struct Data_Struct *Next;
};
typedef struct Data_Struct MyData;
这是一个非常简单的链表结构。
如您所见,数据存储在 char* 中,当我填充列表时,我将指针复制到那里。 一切都很好。当这些指针被覆盖并且我丢失了原始数据时,问题就开始了。我尝试将数据复制到每个“list_add()”上的本地char * malloc',但我继续崩溃或丢失数据。 是的,我确实分配了足够的空间,是的,我确实复制了数据并检查它是否正确复制。我尝试了 memcpy、strcpy 等。
我没有东西可以尝试,所以我的问题是,我如何确保我将添加到列表中的数据是本地的。如何将那些进入列表的 char* 复制到局部变量中。
虽然可以解释如何执行此操作以及为什么我的代码不好,但我更喜欢带有解释的代码。 谢谢。
杰斯。
【问题讨论】:
标签: c linked-list