Intentando crear una lista enlazada pero error con asignación de puntero

Estoy tratando de hacer una lista enlazada y crear algunos métodos. Sin embargo, estoy recibiendo el error:

La asignación crea un puntero desde un entero sin una conversión.

Aquí está mi código:

#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; } 

Si el error está en la línea comentada, quizás ID sea un puntero, no un int. Esto funcionará bien:

 students->ID = 0; 

porque establece el puntero en NULL, por lo que se comstack sin error / advertencia.