| 
 | 
 
STUDENT * Delete_stu_list(STUDENT * head,char * sname) 
{ 
 STUDENT *q,* p; 
 p = head; 
     
 while(p->next) 
 { 
  q = p; 
  p = p->next; 
     if(strcmp(p->name,sname) == 0) 
  { 
   if(p == head) 
    head = p->next; 
   else 
    q->next = p->next; 
   free(p); 
  } 
 } 
 
 return head; 
} 
 
请帮我看看这段代码,我的理解是会漏掉第一个结点,事实也是这样,可是当后面的结点符合删除条件时,会抱发送错误报告的错误,就算是漏掉了第一个接点,也不应该抱这个错误啊 |   
 
 
 
 |