如何在链表中打印值?

时间:2013-06-02 10:06:01

标签: c pointers struct linked-list pass-by-pointer

在一天的大部分时间里,我一直试图用链接列表编写一个简单的程序。我的主要问题似乎是不理解为什么我访问的内存不是我认为的。我很疯狂,并且输出了所有可能的数据形式,但仍然无法理解为什么它不起作用。

例如,当我将&head传递给需要node **location的函数时,我想检查location(因此head)内的值是否为{{ 1}}或者不是,我应该使用NULL还是应该使用if(!*location) return;,看来后者是正确的,但为什么?

当我想在函数中创建if(!location) return;来跟踪事物时,我应该从node *current还是node* current = *head开始,最重要的是,为什么?我注意到后者更好,但我仍然无法理解它。当我对语句进行类型转换时,警告会消失,但它似乎什么也没有解决。

以下是我写的一些函数,请你给我一些关于我在代码中没有意义的提示。最好,我希望理解为什么输出似乎是一个内存位置然后访问坏内存。

node* current = head

1 个答案:

答案 0 :(得分:2)

您的return_append_tail函数实际上并未附加任何内容,除非使用正确的location调用,但您没有。{/ p>

您应该使用&current->next函数中的main来调用它。

相关问题