C++의 링크 된 목록 끝에 삽입하는 간단한 함수를 작성하고 있지만 마지막으로 첫 번째 데이터 만 표시합니다. 나는 틀린 것을 생각할 수 없다.링크 된 목록의 끝에 삽입하십시오.
node* Insert(node* head, int data)
{
if (head == NULL) {
head = new node();
head->data = data;
head->link = NULL;
return head;
}
else {
node* temp = head;
while (temp != NULL) {
temp = temp->link;
}
node* temp2 = new node();
temp2->data = data;
temp2->link = NULL;
(temp->link) = temp2;
return head;
}
}
'(temp-> link) = temp2;'에서'temp'는 널 포인터입니다 (그렇지 않으면'while (temp! = NULL)'루프에서 계속 회전합니다). 따라서 UB 인 null 포인터를 역 참조합니다. – melpomene
고마워요! :) – mistletoe