을 삭제하는 것은 여기에 링크 된 목록을 삭제하는 내 함수의 : 헤드 포인터가 가리키는링크 된 목록 기능
void deleteList(NODE* head)
{
NODE* temp1;
NODE* tempNext;
temp1 = head;
tempNext = NULL;
while(temp1 != NULL)
{
tempNext = temp1->next;
free(temp1);
temp1 = tempNext;
}
}
그래서 TEMP1 첫째 점을. NULL
이 아니면 tempNext
이 목록의 다음 요소를 가리 키도록 설정됩니다. 그런 다음 첫 번째 요소 (temp1
)는 free이고, temp1
은 tempNext
이 가리키는 곳을 가리키고 다시 반복됩니다.
이 전체 목록 삭제에 대한 올바른 접근 방식인가? 나는이 기능을 사용 후 목록을 인쇄 할 때, 그것은 여전히 목록을 인쇄하기 때문에
나는이를 부탁드립니다. 그리고 IIRC는 무언가를 해지해도 삭제되지 않지만 사용 가능한 것으로 표시된 것만 큼 올바른지 여부를 알 수 없습니다.
그것은 또한 당신의 목록과 같은 방법에 따라 달라집니다. 데이터에 대한 메모리를 할당 한 경우 (데이터에 대한 포인터가 목록에 포함되어있는 경우), 해당 데이터도 참조 할 수있는 목록이 아닌 해당 데이터를 해제 할 수 있습니다. – Jite
@ Jite : 오, 좋은 지적 ~! 미래를 염두에 두겠다. –