IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

liste et structure


Sujet :

C

  1. #1
    Membre régulier Avatar de dinver
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 122
    Points : 110
    Points
    110
    Par défaut liste et structure
    je veux faire une liste de Personne (personne étant défini comme une structure avec nom prenom et age)

    jai fait une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Personne first(sListePersonne *l) {
            if (!estVide(l))
                    return l->valeur;
           return NULL;
    }
    j'ai une erreur de compilation NULL n'est pas de type Personne

    comment résoudre ce prb merci d'avance

  2. #2
    Membre averti Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Points : 396
    Points
    396
    Par défaut
    Bah oui...

    NULL c'est NULL quoi.... La a part te renvoyer vers un tuto de C je vois pas quoi faire...

    Pourquoi NULL ca devrait etre une personne ???

    return (NULL) c'est un peu comme return (0) si tu veux...
    Don't worry, be serious.
    La vie est courte. Prenez votre temps.

    Jack.

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Ça pourrait fonctionner si Personne était de type pointeur, ce qui n'est peut-être pas le cas !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  4. #4
    Membre averti Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Points : 396
    Points
    396
    Par défaut
    Vu ce qui est dit au dessus Personne doit etre une structure.

    Mais tant qu'on a pas plus de code, difficile de dire plus...
    Don't worry, be serious.
    La vie est courte. Prenez votre temps.

    Jack.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Deux solutions :

    Soit tu modifies first pour qu'elle renvoit un pointeur sur Personne,

    Soit tu crées une constante NULL_PERSONNE de type Personne qui sera renvoyé en cas de est_vide(l). Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const Personne NULL_PERSONNE = { NULL, NULL, -1 } ;

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: liste et structure
    Citation Envoyé par dinver
    je veux faire une liste de Personne (personne étant défini comme une structure avec nom prenom et age)

    jai fait une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Personne first(sListePersonne *l) {
            if (!estVide(l))
                    return l->valeur;
           return NULL;
    }
    j'ai une erreur de compilation NULL n'est pas de type Personne
    Quel est le type de Personne ? NULL n'a de sens que pour un pointeur. Si c'est une structure, comme tu as l'air de de dire, tu ne peux pas retourner NULL, ça n'a aucun sens...

    D'autre part, retourner une structure, c'est pas très efficace (copie...). Si l'objet 'l->valeur' est persistant après la fonction, tu peux retourner son adresse via un pointeur de type Personne (Personne *), et dans ce cas le NULL aura un sens.

    D'une manière générale, il faut être cohérent.
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Problème Listes chainées Structure contenant
    Par loco_info dans le forum C
    Réponses: 3
    Dernier message: 17/05/2007, 13h08
  2. liste chainée & structure
    Par hunter99 dans le forum C
    Réponses: 8
    Dernier message: 10/12/2006, 16h31
  3. les listes chaineés(structures)
    Par snakemetalgear dans le forum C
    Réponses: 18
    Dernier message: 14/11/2006, 18h09
  4. Récupération d'une liste de structures Oracle via Java
    Par MagikMarcel dans le forum Langage
    Réponses: 2
    Dernier message: 29/06/2006, 16h34
  5. Réponses: 7
    Dernier message: 18/04/2006, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo