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] –