logo Homepage
+  NewbieContest
|-+  Programmation» Langages compilés» [Résolu][C] Problème vaudou
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [Résolu][C] Problème vaudou  (Lu 2781 fois)
TrackNeur
Profil challenge

Classement : 4846/54283

Néophyte
*
Hors ligne Hors ligne
Messages: 2


Voir le profil
« le: 19 Mars 2009 à 15:56:47 »

Bonjour,

Je suis actuellement en train de travailler sur une librairie gérant les listes pour mon cour de programmation. Dans cette librairie, j'ai décidé d'ajouter une fonction suite qui prend une liste et qui retourne la liste privé de son premier élément.

Tout d'abord, j'ai écrie une fonction qui devrait fonctionner mais qui dans la pratique ne fonctionne que quand elle en a envie (sic) :

Code:
liste* suite (const liste l){
   
    liste *sL;
    elem_liste *e;

    e = l;
    (*sL)=e->suiv;

    return sL;
}

J'ai finalement réussi à la faire fonctionner tout le temps en l'écrivant ainsi :

Code:
liste* suite (const liste l){
   
    elem_liste *e;
    e = l;

    return &(e->suiv);

}

Ma question est donc : Pourquoi la première fonction ne fonctionne pas correctement alors qu'elle semble faire la même chose que la seconde ?

Voici ma structure de donnée (ça peut être utile ...) :

Code:
typedef struct s_elem_liste {
    int info;
    struct s_elem_liste *suiv;
} elem_liste;

typedef elem_liste* liste;
« Dernière édition: 20 Mars 2009 à 11:27:50 par TrackNeur » Journalisée
PtitYeti
Profil challenge

Classement : 724/54283

Néophyte
*
Hors ligne Hors ligne
Messages: 15


Voir le profil
« #1 le: 19 Mars 2009 à 23:15:20 »

Bonsoir,

a priori, rien de vaudou au fait que ton premier code produise un segfault: tu affecte une valeur a un pointeur non initialisé.

(*sL) = whateveryouwant va poser probkème si sL n'est pas initialisé.
Journalisée
CommComm

Profil challenge

Classement : 86/54283

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1283


Voir le profil
« #2 le: 20 Mars 2009 à 07:35:04 »

Si c'est pas les effets de la mondialisation, ça... Un Yeti qui répond à une question sur le vaudou !
Journalisée

En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(Devise d'un newbie shadok)
TrackNeur
Profil challenge

Classement : 4846/54283

Néophyte
*
Hors ligne Hors ligne
Messages: 2


Voir le profil
« #3 le: 20 Mars 2009 à 10:45:40 »

Aaaaah Je comprend mieux pourquoi mon prof nous disait de toujours se poser la question "mais où habitez-vous ?" quand on utilise les pointeurs...

Merci PtitYeti, je suis vraiment un noob pour pas avoir compris ça. -_-
Journalisée
PtitYeti
Profil challenge

Classement : 724/54283

Néophyte
*
Hors ligne Hors ligne
Messages: 15


Voir le profil
« #4 le: 20 Mars 2009 à 15:37:06 »

De rien!

Les pointeurs n'aiment pas du tout l'à peu près et généralement, ça ne pardonne pas...
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: