排序列表,错误“无响应”

时间:2015-01-29 14:16:42

标签: c sorting struct

我对代码排序有什么问题? 当我打开我的程序时,我看到错误“程序没有响应”。请检查我的代码。

void sorting(el_list **first)
{
   el_list *newfirst = NULL;
   el_list *min, *prevmin, *tmp;

   while( first )
   {
      min = first;
      prevmin = NULL;
      tmp = first;
      while(tmp->next)
      {
        if (tmp->next->record.score < min->record.score)
        {
          prevmin = tmp;
          min = tmp->next;
        }
        tmp = tmp->next;
      }
      if (prevmin) prevmin->next = min->next;
      else first = min->next;
      min->next = newfirst;
      newfirst = min;
   }
  first = newfirst;
}

1 个答案:

答案 0 :(得分:0)

更改此

 if (tmp->next->record.score < min->record.score)

 if ((min != NULL) && (tmp->next->record.score < min->record.score))

在取消引用指针之前始终检查。