Попытка создать связанный список, но ошибка с назначением указателя

Я пытаюсь создать связанный список и создать некоторые методы. Однако я получаю сообщение об ошибке:

Присвоение делает указатель из целого без литого.

Вот мой код:

#include  #include  #include "students.h" node_ptr create(void) { node_ptr students = (node_ptr) malloc(sizeof(struct node)); students->ID = 0; students->name = NULL; students->next = NULL; return students; } void insert_in_order(int n, node_ptr list) { node_ptr before = list; node_ptr new_node = (node_ptr) malloc(sizeof(struct node)); new_node->ID = n; //error is here I think while(before->next && (before->next->ID next; } new_node->next = before->next; before->next = new_node; } 

Если ошибка указана в прокомментированной строке, то, возможно, ID – это указатель, а не int. Это будет нормально работать:

 students->ID = 0; 

потому что он устанавливает указатель на NULL, поэтому он компилируется без ошибок / предупреждений.