gpt4 book ai didi

无法打印链接列表

转载 作者:太空宇宙 更新时间:2023-11-04 03:52:37 25 4
gpt4 key购买 nike

我对用 C 编写代码非常陌生(因此我正在做这个愚蠢的练习)。

我有一个链表、一个应该打印我的链表的函数和 main 函数。

不幸的是,我对 C 的了解还不足以理解为什么这不是打印。更不幸的是这段代码并没有崩溃。

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

typedef struct Node {
int data;
struct Node* next;
} *Node_t;

void print_list(Node_t root) {
while (root) {
printf("%c ", root->data);
root = root->next;
}
printf("\n");
}

int main () {
int i;
int n = 6;
Node_t list = (Node_t)malloc(sizeof(struct Node) * n);
Node_t root;

for (i=0; i < n; i++) {
list[i].data = i+1;
if (i == n-1) {
list[i].next = 0;
}
else {
list[i].next = &list[i+1];
}
}

root = &(list[0]);

print_list(root);
}

最佳答案

您的 print_list 函数在 printf 中有错误的格式说明符。应该是

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

更正后的代码:

void print_list(Node_t root) 
{
while (root) {
printf("%d ", root->data);
root = root->next;
}
printf("\n");
}

并且无需转换 malloc 的结果 - 这应该没问题:

 Node_t list = malloc(sizeof(struct Node) * n);

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

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