gpt4 book ai didi

c - 链接列表打印问题?

转载 作者:行者123 更新时间:2023-11-30 18:31:48 25 4
gpt4 key购买 nike

我尝试打印链接列表,但它没有打印列表中的所有成员。您能解释一下我的代码中存在什么问题吗?即使列表的其余部分位于另一个函数上,代码行 (newhead=newhead->next) 是否也会移动?

#include <stdio.h>
#include <stdlib.h>

struct test_struct{
int data;
struct test_struct *next;
};

struct test_struct* create();
void add_node();
int main()
{
add_node();

return 0;
}

void add_node()
{
struct test_struct* head = create();
struct test_struct* newhead;
newhead = malloc(sizeof(struct test_struct));
newhead->data=2;
newhead->next=head;
head=newhead;
while(newhead->next != NULL)
{
printf("%d\n",newhead->data);
newhead=newhead->next;
}



}


struct test_struct* create()
{

struct test_struct* head=NULL;
struct test_struct* temp = (struct test_struct*)malloc(sizeof(struct test_struct));
if(NULL==temp)
{
printf("error in memory");
return 0;
}
temp->data=5;
temp->next=head;
head=temp;

return head;
}

最佳答案

当 while 循环位于没有 next 节点的节点时,它就会停止;它不会打印该节点上的数据。

相反,当它指向没有节点时你想停止;也就是说,就在它“从列表的末尾掉下来”之后:

while(newhead != NULL)
{
printf("%d\n",newhead->data);
newhead=newhead->next;
}

关于c - 链接列表打印问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com