Salut,

Bon je debute niveau liste chainée, j'ai besoin de m'y exercer avant de continuer mon projet reseau.
Donc pour le moment je commence calme : une liste simplement chaînée.
Dont voici la structure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
typedef struct liste
{
	int val;
	struct liste* suivant;
}liste;
J'ai écrit, avec un peu de mal, une première fonction qui ajoute un élément en fin de liste, la voici :
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
 
#ifdef __cplusplus
#error Be sure you are using a C compiler...
#endif
 
#include "liste.h"
 
liste* ajouter(liste *pListe, int valeur)
{
	liste nouv;
	/* On se positionne à la fin */
	while(pListe)
	{
		pListe = pListe->suivant;
	}
	nouv.val = valeur;
	nouv.suivant = NULL;
	pListe = &nouv;
 
	return pListe;
}
Ensuite, une petite main pour tester..
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
 
#ifdef __cplusplus
#error Be sure you are using a C compiler...
#endif
 
#include "liste.h"
 
int main()
{
	/* notre pointeur sur une liste bientot chainée ! */
	liste* pMaListe = malloc(sizeof(liste));
	pMaListe = NULL;
	/* on ajouter un élément ! */
	pMaListe = ajouter(pMaListe,0);
	/* on regarde si ça marche...*/
	if(pMaListe)
	{
		printf("Valeur : %d\n",pMaListe->val);
	}
	else
	{
		printf("Ta liste est toujours vide idiot...\n");
	}
 
	system("Pause");
	return 0;
}
Ca compile bien mais fonctionne pas correctement à l'execution.
Valeur : 8
Appuyez sur une touche pour continuer...
Je ne trouve pas mon erreur