no save
Assistance
Achat
News

Forum | programmation
[C] liste chainée, passage des pointeurs
kaham, le mer. 20 mai 2009 à 17:02:15
Bonjour,
J'ai un probleme avec ma liste chainée formatée. Dans mon programme il y a 2 fonctions : une qui cherche l'emplacement croissant pour placer ma valeur et l'autre qui créé l'allocation et affecte les valeurs au pointeur.

les voici :

void search(struct elem *tete, int val, struct elem *r, struct elem *q){
int trouve = 0;
q=tete;
r=tete;
while(q!=NULL && !trouve){
printf("tete = %ld\tq = %ld\tr = %ld\n", tete, q, r);
if(q->info > val)
trouve=1;
else{
r=q;
q=q->next;
}
printf("q = %ld\tr = %ld\n", q, r);
system("pause");
}
}

void insert(struct elem *tete, int val){
struct elem *p=NULL,*q=NULL,*r=NULL;
search(tete, val, r, q);
p = (struct elem *)malloc(sizeof(struct elem));
if(p==NULL) printf("Memory allocation failed\n");
printf("q = %ld\tr = %ld\n", q, r);
p->info = val;
p->next = q;
printf("p->info = %ld\tp->next = %ld\n", p->info, p->next);
r->next = p;
}


Les pointeurs "q" et "r" sont initialiser a NULL et apres le passage de la fonction "search()" il devraient prendre les valeurs de l'élément suivant et précédant le nouvelle élément. Mais dans mon cas il reste a NULL.

Je ne trouve pas la solution.
Merci de votre aide.Configuration: Windows XP
Firefox 3.0.10


kaham
23 mai
Suivant
REPONSES
kaham
23 mai
Lamp's
23 mai
kaham
24 mai
Version Web
Réalisé par RedShift
no save