Bonjour voila j'ai une liste chainée:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
struct listeClients 
{	
	/* données */
	int socket;
	char pseudo[256];
	/* chainage */
	struct listeClients * suivant ;
};
avec sa fonction ajouter:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
struct listeClients * ajoutListe(struct listeClients *l, int sock, char *nom)
{
	/* allocation du noeud */
	struct listeClients *nouveau = malloc (sizeof *nouveau);
 
   /* si tout c'est bien passe : */
	if (nouveau != NULL) {
      /* mise a jour des champs : */
 
      /* donnees */
		nouveau->socket = sock;
		memcpy(nouveau->pseudo, nom, strlen(nouveau->pseudo));
      /* chainage par defaut */
		nouveau->suivant = NULL;
 
      /* chainage */
		if (l == NULL){
         		/* c'est le premier : */
         		l = nouveau;
		}
		else {
         /* on cherche le dernier noeud */
		struct listeClients *p = l;
 
		while (p->suivant != NULL) {
            /* pointer sur le suivant */
			p = p->suivant;
		}
 
         /* modification du chainage */
	p->suivant = nouveau;
		}
	}
	return l;
}
à cette liste je veux y ajouter un tableau de caractéres construit comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
char pseudo[256];
nbytes=recv(newfd,pseudo,sizeof(pseudo)-1,0);
pseudo[nbytes]=0;
ajoutListe(l, newfd, pseudo);
mais il n'y a rien à faire j'ai un "segmentation fault" et je ne vois pas mon erreur...si qqun pouvait m'orienter