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 generique ou specialisée ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Liste generique ou specialisée ?
    Bonjour à tous

    Je cherche à implementer une liste pour 2 types de structures
    (disons objet1 et objet2).
    Ces objets, je les crée avec un malloc dont je recupere un pointeur.
    Ma question donc est de savoir si je peux implementer une liste generique pour ces deux objets, ou deux listes specifiques à chacun des objets.
    Concretement:

    Quand je defini le type element de liste,
    -est-ce-que je peux faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    typedef struct elementListe{
    	elementListe* precedent;
    	elementListe* suivant;
    	void* structure; //qui pointe vers un pointeur d'objet (objet1 ou objet2)
    }elementListe;
    -Ou alors je suis obligé de faire cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    typedef struct elementListeObjet1{
    	elementListe* precedent;
    	elementListe* suivant;
    	objet1** structure; 
    // je specifie ce pointeur par rapport à l'objet donc je fais 2 types elementListe (1 pour chaque objet)
    }elementListeObjet1;
    Merci pour votre aide.

  2. #2
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    je suppose que tu voulais écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct elementListe{
    	struct elementListe* precedent;
    	struct elementListe* suivant;
    	void* structure; //qui pointe vers un pointeur d'objet (objet1 ou objet2)
    }elementListe;
    oui c'est possible, si tu sais ce que tu fais. Généralement je rajoute un champ type à la structure.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Oui oui je sais ce que je fais ^^. j'avais oublié struct.
    Merci pour ta reponse qui divise par deux la taille de mon code.

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Il y a un exemple d'une telle liste ici si ça t'intéresse.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Wouaa!
    je vais m'en inspirer (en fait j'ai bien avancé la mienne ^^')
    Je remarque qu'il n'y a pas de pointeur courant. Je vais méditer dessus.
    Merci pour tout

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'ai appuyé sur "résolu" trop tôt. En fait je ne parviens pas à raccorder un pointeur void* vers un pointeur structure*.

    @ mario: a partir de de ton champs 'type' dans la liste, je ne sais pas trop comment tu parviens à gerer ce problème. Je ne crois pas que je pourrais faire un cast sur le void* par la suite.

    @Melem: Ce projet montre comment faire une listeDC generique avec des pointeurs void* comme contenu. Pourtant dans "prog_liste.c", la structure est passée en parametre lors de son instanciation. D'où ma question
    -est ce possible ou alors c'est juste de la theorie (trop abstraite pour moi)

Discussions similaires

  1. Custom Inspector avec les listes generiques
    Par tlt dans le forum Unity
    Réponses: 8
    Dernier message: 06/11/2012, 12h54
  2. repeator et list generique
    Par ahmedmido dans le forum C#
    Réponses: 1
    Dernier message: 10/10/2008, 13h58
  3. Pb template liste generique
    Par luffy.luck dans le forum Langage
    Réponses: 5
    Dernier message: 06/10/2008, 19h12
  4. Réponses: 2
    Dernier message: 04/07/2007, 18h12
  5. tri de liste chainée
    Par RezzA dans le forum C
    Réponses: 7
    Dernier message: 26/01/2003, 21h25

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