Probléme de compilation

Signaler
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007
-
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007
-
voila enfaite j'ai commencé a apprendres les structures et j'ai un probléme a la compilation qui dit :
" cannot convert `Nick*' to `Nlist*' in assignment "

voici mon code :

typedef struct Nlists
{
char nick[255];
char host[255];
char identd[50];
char server[60];
char ip[16];
}Nlist;

typedef struct Nicks
{
Nicks* next;
Nlist* data;
}Nick;

message(char** rvs, char *line)
{
                      /* le départ de la liste */
 Nick* depart=NULL; /* vide au depart */
 Nlist *val= (Nlist*) malloc(sizeof(Nlist));
 if(val!=NULL)
 {
 strcpy(val->nick,rvs[1]);
/* passage du pointeur sur la structure data à la fonciton ajoute */
}
            else if (strcmp(rvs[0],$NICK) == 0) co(depart,val,rvs,line);
     }

Jusque la sa va
c'est ensuite que vien le probléme

Nick *co(Nlist* debut,Nick* val,char** rvs, char *line)
{
 Nick *work;
 Nick *temps; 
 temps = (Nick*) malloc(sizeof(Nick));
 if(temps!=NULL)
{
 temps->next=NULL;
 temps->data=val;
 if(debut==NULL)
 debut=temps;
 else
 {

 work=debut;
 while(work->next!=NULL ) {
 work=work->next;
}
temps->next=work->next;
work->next=temps;
}
}
else
{
error("Allocation de mémoire impossible");
}
//
return debut;
}

pouvez-vous m'aider ?

4 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
temps->data=val;

Le membre data est un pointeur NList mais val est un point Nick

C++ (@++)<!--
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007

oui cela je l'ai compris mais le code que j'ai posté et de la seul maniére dont je sais le tourné, alors je sais pas ce qui faut modifier ou ajouter pour qui sa compile et qui fonctionne ...
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Si tu est sûr de toi, tu peux essayer un cast:



temps->data=(Nlist*)val;

C++ (@++)<!--
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007

mais c'est pas normal de devoir caster en structure non ? t'aurai pas un meilleur code toi ?