while 루프가 끝나기 전에 komv-> next가이 코드에서 어떻게 NULL이 될 수 있습니까? 다음 줄 이후에 NULL이된다는 것을 알아 차리지 못합니다 .-> previous-> next = town-> next 그러나 나는 왜 이런 일이 일어 났는지 이해할 수 없습니다. 세그먼트 화 오류로 인해 프로그램이 종료되었습니다. komv
만약한 포인터의 변경이 다른 포인터에 영향을 미침
komv=list->First;
while ((komv->next)!=NULL)
{
if(town->num>=komv->next->num)
{
town->previous->next=town->next;
if(town->next!=NULL)
town->next->previous=town->previous;
town->next=komv->next;
town->previous=komv;
komv->next->previous=town; // gdb say komv->next=NULL
komv->next=town;
break;
}
komv=komv->next;
}
도시가 이미 목록 – seinta
이 라인에서 노드) 마지막 반복에서 얻을 : 동안 ((komv-> 다음) = (komv 동안 NULL)이어야한다! = NULL) 다음 현재 링크 된 목록 노드를 기반으로 나머지 루프를 수정하십시오. 다음 노드 'komv = komv-> next'로 이동하십시오. 루프의 끝에서 – user3629249