2010-04-21 3 views
2

J'essaie de créer une liste chaînée et de créer des méthodes. Cependant, je reçois l'erreur:Essayer de créer une liste liée mais une erreur avec l'affectation du pointeur

Assignment makes pointer from integer without a cast.

Voici mon code:

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

Afficher la définition de new_node et node_ptr. En général, les typedefs qui cachent le fait que quelque chose est un pointeur sont considérés comme de mauvais style. –

Répondre

0

Si l'erreur est sur la ligne de commentaire, alors peut-être ID est un pointeur, pas un int. Cela fonctionne très bien:

students->ID = 0; 

car il définit le pointeur NULL, il compile sans erreur/avertissement.

Questions connexes