Почему ошибка сегментации отображается даже после выделения памяти? - PullRequest
0 голосов
/ 14 мая 2019

Код показывает ошибку сегментации в функции free_nlist () (строка # 539) в файле nlist.c.

Я попробовал одну вещь, но я не думаю, что это было логично;Я попытался выделить динамическую память для переменной "nlb_head" (строка # 542) с помощью команды: nlb_head = (struct nlblock *) malloc (sizeof (struct 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

...