C에서 연결된 목록을 구현하려고했습니다. 연결된 목록에서 요소를 목록의 처음에 삽입하려고합니다. 다음 방법 ...C에서 연결 목록의 마지막 요소를 null로 만들려면 어떻게해야합니까?
void insertToStart(LinkedList* list, Student st)
{
LinkedListNode* newNode = (LinkedListNode*)malloc(sizeof(LinkedListNode));
newNode->data = st;
newNode->next = list->head;
list->head = newNode;
}
내 목록을 인쇄하려고하면 내 문제가 발생합니다 ... 무한 루프가 발생합니다. 이 마지막 요소의 내 목록에서 다음 null로 가리 키지 않기 때문에이있을 수 있습니다 생각하지만 난 마지막 요소의 다음 포인트가 null로 만드는 방법을 모르는 경우 내 대하여 printList 방법
void printList(LinkedList* list)
{
LinkedListNode* current;
current = list->head;
while(current != NULL)
{
printf("Name: %s ID: %d\n", current->data.name , current->data.ID);
current = current->next;
}
}
입니다. 어떻게해야합니까? 이것은
#ifndef LINKEDLIST_H
#define LINKEDLIST_H
typedef struct{
char name[20];
int ID;
} Student;
typedef struct LinkedListNode{
Student data;
struct LinkedListNode* next;
} LinkedListNode;
typedef struct {
LinkedListNode* head;
} LinkedList;
void mallocList(LinkedList* list);
void insertToStart(LinkedList* list, Student st);
void printList(LinkedList* list);
#endif
내 수정구는 처음 비어있는 목록을 만들 때'head'를'NULL'로 설정하는 것을 잊었다 고 생각합니다. – molbdnilo
'void mallocList (LinkedList * list)'를 보여주고 이것을 호출하십시오. – BLUEPIXY
'mallocList','insertToStart' 및'printList' 호출 방법을 보여주십시오. 또한 이것에 대해서 읽으십시오 : [mcve] –