我很难理解我的代码中有什么问题,
正如你所看到的,它是一个链接列表,它应该连接“盒子”,每个盒子都有一个 int 值和一个指向下一个盒子的指针,但是我无法让它运行,而且我不'不知道为什么。
谁能告诉我为什么它不运行?
#include <stdio.h>
#include <stdlib.h>
struct node {
int n;
struct node *next;
} node;
typedef struct node Box;
main()
{
Box *q, *r, *s;
Box t;
q = (Box *)malloc(sizeof(Box));
r = (Box *)malloc(sizeof(Box));
s = (Box *)malloc(sizeof(Box));
q->n = 2;
q->next->n = 3;
r->n = 4;
q->next->next = r;
r->next = NULL;
s->n = 5;
s->next = NULL;
t.n = 6;
printf("================");
printf("Q == %d\n", q->n);
printf("R == %d\n", r->n);
printf("S == %d\n", s->n);
printf("{%d}{%d}{%d}{%d}{%d}", q->n, q->next->n, r->n, s->n, t.n);
}
最佳答案
您为q
分配内存
Box *q = malloc(sizeof(Box));
那么您正在使用 q->next
而不分配它:
q->n = 2;
q->next->n = 3;
关于c - 如何调试链表程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37859245/