-1
C에서 연결된 목록에서 노드를 삭제하는 동안 한 가지 문제가 있습니다. 어디에서 내가 누락되었지만 어떻게 든 잘못된 노드가 삭제됩니다. 예상 된 것, 또한 마지막 하나는 사라졌고 내가 free() 할 때 실제로 작동하지 않는다. 여전히 데이터를 유지하고 인쇄한다. 아무도 도와 줄 수 있습니까?연결된 목록에서 노드를 삭제하는 중 제대로 작동하지 않습니다.
node=head;
temp=node->next;
if(record == 1){
head=head->next;
printf("\nInside if count %d node %s head %s",count, node->name, head->name);
free(node);
}
else if (record > 1){
while(count < record-1 && count < list_size){
printf("\nInside while count %d node %s head %s",count, node->name, head->name);
node = temp;
temp = temp->next;
node->next = temp->next;
count++;
}
printf("\nOutside while temp %s node %s head %s",temp->name,node->name,head->name);
free(temp);
}
같은 적어도이 문장 온도 = 노드 -> 다음; 의미가 없으며 정의되지 않은 동작이 발생할 수 있습니다. –
함수에서 코드 스 니펫 일 경우 전체 함수를 표시하십시오. –
다음 명령문 node-> next = temp-> next; while 루프에서도 의미가 없습니다. –