목록을 처리하는 동안 생성 된 중복 값을 제거하기 위해이 코드를 사용하면 이 시작되지만이 코드를 사용할 때 세그먼트로 오류가 발생하지 않으면 프로그램이 제대로 실행됩니다. 당신이 q->next->next
가 널 포인터가 목록에서 마지막 노드에 두 번째이다 할 때링크 된 목록의 세그먼트 오류 얻기
void remove_duplicate(){
q = start; //list start has already been created
while(q->next){
q=q->next;
if(q->id==q->next->id){ //removing duplicate values
q->next->prev = q->prev;
q->prev->next = q->next;
}
}
}
(q-> 다음)은 정확히 동일합니다. 그리고 당신의 픽스는 q-> prev가 아마도 NULL 일 때 바로 충돌 할 것이고 –
에 아마 NULL을 쓰고 싶을 것입니다 ... 지금이 구조체가 어떻게 정의되었는지, 내 픽스가이 특별한 문제를 하나의 점프로 해결할 수는 없습니다. 노드 앞에 –
해결책을 잘못 읽었습니다. 내 의견의 첫 번째 문장은 정확하지 않으며, 두 번째 문장은 그대로 서 있습니다. –