【发布时间】:2018-09-10 21:00:49
【问题描述】:
我已将问题缩小到这个非常具体的细节,但我仍然无法找到解决方案。我有点感觉为什么会发生这种情况,但是对于指针来说是新手,我不知道如何解决它。
所以我有一个单链表,其中一个函数可以将元素添加到它的开头,另一个函数可以列出其元素。两者都工作正常。
我想通过一个循环,将不同的值传递给char *variable,然后使用insert(variable) 函数将其添加到单链表中。
这是我得到的行为:
variable = "aa";
insert(variable);
list();
List: aa
variable = "aa";
insert(variable);
variable = "bb";
insert(variable);
list();
List: bb bb
variable = "aa";
insert(variable);
variable = "bb";
insert(variable);
variable = "cc";
insert(variable);
list();
List: cc cc cc
显然想要的结果是:List: cc bb aa。为什么会这样?
代码:
while (fgets(word_in_file, LENGTH, file) != NULL) {
word_to_add = malloc((LENGTH) * sizeof(char));
strcpy(word_to_add, word_in_file);
insert(word_to_add);
}
谢谢!
【问题讨论】:
-
显然你的代码在某种程度上被破坏了。没有看到代码我们不能说更多。
-
你应该添加你如何实现
insert()和list()。
标签: c pointers char singly-linked-list