Я пытаюсь создать связанный список и создать несколько методов. Однако я получаю сообщение об ошибке:
Присвоение делает указатель из целого числа без приведения.
Вот мой код:
#include <stdio.h> #include <stdlib.h> #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 < n)) { before = before->next; } new_node->next = before->next; before->next = new_node; }
Если ошибка в закомментированной строке, то, возможно, ID это указатель, а не int. Это будет хорошо работать:
students->ID = 0;
потому что он устанавливает указатель в NULL, поэтому он компилируется без ошибок / предупреждений.