我有那两个结构和那个简单的初始化函数。
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。可能是问题吗?我该如何解决这个问题?
答案 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