gpt4 book ai didi

c - 迭代链表

转载 作者:行者123 更新时间:2023-12-02 08:08:51 24 4
gpt4 key购买 nike

假设我们有

typedef struct Node{
int num;
struct Node *next;
} node;

node *next1 = NULL;
node node1 = {1, &next1};
node *next0 = &node1;
node node0 = {0, &next0};
node *start = &node0;

为什么以下无法迭代它(我们进入无限循环)?

node *p = start;
while (p != NULL){p = p->next; }

最佳答案

问题出在下面的语句中

node node1 = {1, &next1}; /* node1 next field should be next1 not &next1 */

应该是

node node1 = {1, (struct Node*)next1}; /* similarly for node0 */

这是工作代码

#include<stdio.h>
int main() {
typedef struct Node{
int num;
struct Node *next;
} node;

node *next1 = NULL;
node node1 = {1, (struct Node*)next1};
node *next0 = &node1;
node node0 = {0, (struct Node*)next0};
node *start = &node0;

node *p = start;
while (p != NULL){
printf("%d \n",p->num);
p = p->next;
}
}

关于c - 迭代链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48933531/

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