J'ai écrit un petit programme qui appelle une procédure qui ajoute des éléments à une liste chainée simple. Mon problème c'est que la liste n'est pas modifiée et à chaque appel de la procédure je trouve la liste vide. Ci-dessous mon programme. Si quelqu'un peut m'aider à voir où se trouve le problème!
**********************************
#include <stdio.h>
#include <stdlib.h>
typedef struct noeud noeud;
struct noeud
{
int info;
struct noeud *suivant;
};
typedef noeud* ptNoeud;
char c;
void ajouter_liste (noeud *tete, int x){
noeud * p;
noeud * p1;
p = tete;
if (p==NULL) {
printf("Tete de la liste");
tete= malloc(sizeof(noeud));
tete->info = x ;
tete->suivant = NULL;
printf("%s%d%s\n","Ajout de ", x, " à la tête");
}
else {
printf("%s%d%s\n","Ajout de ", x, " à la liste");
while (p->suivant != NULL)
{
p = p->suivant ;
}
p1=malloc(sizeof(noeud));;
p1->info = x ;
p1->suivant = NULL ;
p->suivant = p1;
}
}
int main()
{
int v;
ptNoeud q = NULL;
ajouter_liste (q, 3) ;
ajouter_liste (q, 6) ;
ajouter_liste (q, 1) ;
ajouter_liste (q, 2);
printf("%s","Taper un caractère pour continuer...");
scanf("%s", &c);
return 0;
}
***************************************************
No dejes para mañana lo que puedes hacer hoy