", head->data); while(head->-6ren">
gpt4 book ai didi

c - 为什么这个打印链表功能不起作用?

转载 作者:行者123 更新时间:2023-11-30 14:21:03 24 4
gpt4 key购买 nike

我有一个功能如下

void printLinkedList(struct node *head) {

printf("%d-->", head->data);

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

我想打印按以下方式构造的链表的内容:

for (int i = 0; i < 10; i++) {
head->data = i+1;
head->ptr = malloc(sizeof(struct node));
head = head->ptr;
}

所以理想情况下,这应该给我类似的东西:

1-->2-->3-->4-->...-->10-->NULL

但是,如果一切正确,valgrind 就会给我内存错误。请告诉我我做错了什么。

最佳答案

检查一下。

struct node *temp, *head= NULL, *last = NULL;
for (int i = 0; i < 10; i++) {
temp = malloc(sizeof(struct node));
temp->data = i+1;
temp->ptr = NULL;
if (head == NULL)
head = temp;
if (last != NULL)
last->ptr = temp;
last = temp;
}
printLinkedList(head);

关于c - 为什么这个打印链表功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14949695/

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