为什么即使在分配内存后仍显示分段错误?

时间:2019-05-14 13:29:49

标签: c linked-list segmentation-fault

该代码在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

0 个答案:

没有答案