그래서 여기 링크 된 목록을 삭제하는 코드가 있습니다.C에서 연결된 목록 삭제하기
void destroy(node *h){
if (h->next!=NULL){
destroy(h->next);
}
free(h);
h=NULL;
}
문제 인쇄 여전히 숫자의 무리 출력이다 :
11, 2, 15, 3, 9, // 전 처치를
28495936, 28495968, 28496064, 28496096 , 0, // After Destroy
불행히도 할당 이유 때문에 void destroy(node *h)
매개 변수를 변경할 수 없습니다. while 루프 메서드를 사용해 보았지만 여전히 동일한 결과를 얻습니다. 또한 왼쪽으로 시프트를 시도하고 마지막에서 삭제하지만 마지막 노드를 삭제할 수 없습니다. 사전에
감사합니다. 요청에 따라
--edit은 --- , 여기 당신은 h->next = NULL
를 설정해야 인쇄 기능
void print(node* N){
printf("%d, ", N->value);
if (N->next)
print_set(N->next);
if (N == NULL)
printf("Empty Set");
}
우리는 당신이 목록을 인쇄하는 데 사용하는 코드를 볼 수 있을까요? – Kaidjin
왜 파괴 한 목록을 인쇄하겠습니까? 할당이 프로토 타입'void destroy (node *)'인 경우'destroy()'를 호출하는 함수에서 포인터를 변경할 수 없기 때문에 포인터가 null이되어 인쇄를 방지 할 수 없습니다. – Eregrith
인쇄용 코드를 추가했습니다. – User49230