Как установить связанный список в NULL?
Мой код связанного списка, похоже, выводит значение данных в бесконечном цикле, и я считаю, что это потому, что head никогда не устанавливается в NULL. Я не знаю, как это сделать.
Что я уже пробовал:
#include <stdio.h> #include <stdlib.h> typedef struct Node { int data; struct Node* next; }Node; typedef struct { Node* head; }Linked_List; /*------------------------------------------------------------------*/ Linked_List* create_empty_list(void) { Linked_List* new_head; /*create list pointer*/ new_head = (Linked_List*)malloc(sizeof(Linked_List)); /*assign it memory of head struct*/ new_head->head = NULL; return new_head; } Node* insert_start(Linked_List* list, int data) { Node* new_node; new_node = (Node*)malloc(sizeof(Node)); new_node->data = data; new_node->next = list->head; list->head = new_node; return new_node; } void display(Linked_List* list) { Node* temp; temp = list->head; while(temp != NULL) { printf("%d ", temp->data); } temp = temp->next; } int main(void) { Linked_List* the_list = create_empty_list(); the_list->head = insert_start(the_list, 5); display(the_list); return(0); }
k5054
Проверьте свой цикл while в display () и посмотрите, сможете ли вы понять, почему он не завершается.