problème de pointeur avec les listes chainees
Hello !
Encore une fois j'ai un ptit prob...
J'ai créé une structure Sharer et je veux ajouter à la suite plusieurs Sharer...
on problème est que lorsque j'ajoute, tout est ok, une fois que je fai un affiche après avoir retourner le tout, ce qui a été ajouté c'est n'importe koi ! comme si il le NULL n'a pas été remplacé...
Mes sources:
Code:
1 2 3 4 5 6 7 8 9
| typedef struct listePartage
{
struct sockaddr_in * ip ;
struct listePartage * suivant ;
int nbConnection ;
}Sh;
typedef struct listePartage * Sharer ; |
Code:
1 2 3 4 5 6 7 8 9 10
| Sharer sharerNouv()
{
Sharer s = (Sharer) malloc(sizeof (struct listePartage)) ;
s->suivant = NULL ;
s->nbConnection = 0 ;
return s ;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| void ajoutSharer(Sharer l, struct sockaddr_in a)
{
Sharer s = sharerNouv() ;
s->ip=&a ;
printf("WHHHATTTT %s\n", inet_ntoa(s->ip->sin_addr.s_addr));
Sharer courant = l ;
while(courant->suivant!=NULL)
{
courant=courant->suivant ;
}
courant->suivant = s ;
printf("adresse mise %s\n", inet_ntoa(s->ip->sin_addr.s_addr)) ;
printf("port mis %d\n", ntohs(s->ip->sin_port)) ;
//return l ;
} |
Merci d'avance !