该代码在nlist.c文件中的free_nlist()(line#539)函数中显示了分段错误。
我尝试过一件事,但我认为这不合逻辑;我尝试使用以下命令将动态内存分配给变量“ nlb_head”(第542行): nlb_head =(结构nlblock *)malloc(sizeof(结构nlblock)); 它确实给了我结果,但是任何人都可以解释这是否正确。
void free_nlist( struct nlblock *nlb_head )
{
struct nlblock *nlb_tmp;
nlb_tmp=NULL;
while( nlb_head != NULL )
{
nlb_tmp = nlb_head->next;
free( nlb_head );
nlb_head = nlb_tmp;
}
free(nlb_tmp);
}
下面是指向代码的链接: https://drive.google.com/open?id=1BDP-gkSP9rPvAM4oVdNYmwmJqPhy3o_w