struct指向另一个struct的指针

时间:2016-01-29 18:40:53

标签: c struct

我有那两个结构和那个简单的初始化函数。

typedef struct ls{
    int k;
    struct ls *next;
} NOD;

typedef struct h{
    int k;
    NOD *lis;
    struct h *next;
} hash;

我的init函数如下所示:

hash *init_h(hash *h){
    h=NULL;
    h->lis=NULL;
    return h;
}

主要:

hash *h;
h=init_h(h);

当我运行该程序时,它会立即崩溃。 我使用CodeBlocks。可能是问题吗?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

hash *init_h(hash *h){
    h=NULL;       // h is set to NULL
    h->lis=NULL;  // then you dereference NULL.... crash
    return h;
}

您无法取消引用NULL指针

答案 1 :(得分:0)

因为您没有为h*分配内存。

h=NULL;
h->lis=NULL; // NULL pointer dereference = undefined behavior = crash