c - 如何调试链表程序?

标签 c list pointers linked-list

我很难理解我的代码中有什么问题,

正如你所看到的,它是一个链接列表,它应该连接“盒子”,每个盒子都有一个 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/

相关文章:

c++ - 如何初始化双**?

c - 在某些字符串中填充前导零(0 个字符)

c - 如果文件已经打开,fopen 是否返回 NULL 指针?

Python 到 C 转换器/解释器

python - 如何在 python 中定义全局列表并向其 append 本地列表

Python:检查列表中至少一个正则表达式是否与字符串匹配的优雅方法

c - `*&p` 与 `&*p` 之间的区别?

c - 为什么我销毁列表后尾部仍然指向 Something 而不是指向 NULL

python - "ValueError: Unsupported format character ' "' (0x22) 在...”在 Python/字符串

c++ - 2D MemoryView 到 C 指针错误(1D 有效,但 2D 无效)