Probleme exercice language c

Voir le sujet précédent Voir le sujet suivant Aller en bas

Probleme exercice language c

Message  Dark le Sam 13 Oct 2007, 23:50

Bonjour à tous ,

void pushFront ( ListeBi * lst , TVal val )
{
Link * elem;
setAfter(elem,lst->premier);
setBefore(elem,NULL);
setValue(elem,val);
lst->premier=elem;
setBefore(getAfter(lst->premier),lst->premier);
}

void setAfter(Link *e,Link *newAfter){
e->after=newAfter;
}

void setBefore(Link *e,Link *newBefore){
e->before=newBefore;
}

void setValue(Link *e,TVal val){
e->value=val;
}

ListeBi * newListeBi ( void ){
ListeBi * uneListe=(ListeBi*)malloc(sizeof(ListeBi));
setBefore(uneListe->premier,NULL);
setAfter(uneListe->premier,NULL);
setValue(uneListe->premier,NULL);
setBefore(uneListe->dernier,NULL);
setAfter(uneListe->dernier,NULL);
setValue(uneListe->dernier,NULL);
uneListe->premier=NULL;
uneListe->dernier=NULL;
return uneListe;
}

J'ai crée ma liste bi-directionnelle.
Puis , j'ai rajouté deux éléments à ma liste via cette fonction.
Un premier élément ayant val=14 et l'autre val=13.
Ensuite , j'ai fais un printf("%i" , getValue(lst->premier));
et un printf("%i",getValue(lst->premier->after));
Le résultat des deux printf est égal à 13.
Pourquoi ?


Dernière édition par le Dim 14 Oct 2007, 13:05, édité 1 fois

Dark

Nombre de messages : 131
Age : 30
Prénom : Laurent
Statut : Etudiant
Date d'inscription : 15/05/2006

http://membres.multimania.fr/dark0502/

Revenir en haut Aller en bas

Re: Probleme exercice language c

Message  nvs le Dim 14 Oct 2007, 00:47

voila une bonne occasion pour utiliser un débogueur Very Happy

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: Probleme exercice language c

Message  Trusty le Dim 14 Oct 2007, 10:57

et aussi la balise "code"....

Trusty

Nombre de messages : 866
Age : 29
Prénom : Bastien
Statut : old 2010
Localisation : Ath
Date d'inscription : 30/10/2006

Revenir en haut Aller en bas

Re: Probleme exercice language c

Message  El_Turco le Dim 14 Oct 2007, 12:56

Tu pourrais peut-être donner le code des autres fonctions pour que l'on voit si ton problème ne vient pas de la.

El_Turco

Nombre de messages : 896
Age : 30
Prénom : Adem
Statut : Ancien Industriel
Localisation : Bruxelles, Schaerbeek
Date d'inscription : 16/01/2007

Revenir en haut Aller en bas

Re: Probleme exercice language c

Message  Invité le Dim 14 Oct 2007, 16:04

voici la correction complète de cet exercice.

bien à toi.

Invité
Invité


Revenir en haut Aller en bas

Re: Probleme exercice language c

Message  momo le Dim 14 Oct 2007, 17:32

il n'y a pas de la redondance de code ?

exemple dans pushFront tu mets les Link * suivant et précédents à null :
Code:

      lst->premier=newLink(val);
      setBefore(lst->premier, 0);
      setAfter(lst->premier, 0);

or dans le constructeur de newLink tu le fais déjà

Code:
Link * newLink (TVal val) {
    Link * a = (Link *) malloc(sizeof(Link));
    a->value = val;
    a->after = 0;
    a->before = 0;
    return a;
}

enfin ptet bien que j'ai tort, je voulais juste savoir si c'était vraiment nécessaire ou pas de répéter l'opération ou si c'est moi qui ait pas compris albino

momo

Nombre de messages : 86
Age : 30
Prénom : Morgan
Statut : Etd, 3èG
Localisation : Uccle
Date d'inscription : 06/11/2006

Revenir en haut Aller en bas

Re: Probleme exercice language c

Message  Invité le Dim 14 Oct 2007, 17:49

tu as tout à fait raison :p je corrige de suite

Invité
Invité


Revenir en haut Aller en bas

Re: Probleme exercice language c

Message  Contenu sponsorisé Aujourd'hui à 07:13


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum