Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1445 connectés 

  FORUM HardWare.fr
  Programmation
  C

  tableau de pointeur sur structure dans une structure

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tableau de pointeur sur structure dans une structure

n°2185073
archseven
Posté le 10-04-2013 à 01:05:10  profilanswer
 

tout est dans le titre, j'aimerais faire un tableau de 7 pointeurs sur différentes structures et la tableau doit être lui même dans une structure
 
j'avais pris exemple sur une déclaration avec un alias typedef dans la déclaration du tableau  
l'alias ne semble pas marcher car la déclaration du tableau est dans le meme type de structure sur laquelle il pointe et l'alias n'a pas encore son nom d'alias qui est à la fin de la struct.
En remplacant par le nom complet "struct..." ca n'avait pas marché.
 
je veux bien mettre mon code si besoin est.
 
donc voilà si quelqu'un pouvait m'aider ce serait sympa.

mood
Publicité
Posté le 10-04-2013 à 01:05:10  profilanswer
 

n°2185076
gilou
Modérateur
Modzilla
Posté le 10-04-2013 à 02:26:28  profilanswer
 

struct {
    truc *(tab[7]);
}machin;

 

machin est un struct dont le champ tab est un tableau de 7 pointeurs sur des truc.
Si tu as des pointeurs sur différents types dans ton tableau, tu fais
void *(tab[7]); et tu castes.

 

Autre possibilité, déclarer tes types pointeurs sur différentes choses dans une union:
typedef union {
 bidule  *bid;
 chose *choz;
    } truc;

 

struct {
    truc tab[7];
} machin;

 

Concrètement, un exemple de chaque technique:

Code :
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     struct {
  5.         void *(tab[2]);
  6.     } machin;
  7.     int a = 3;
  8.     char b = 'A';
  9.     machin.tab[0] = (void *) &a;
  10.     machin.tab[1] = (void *) &b;
  11.     printf("%d %c\n",  *(int *)machin.tab[0], *(char *)machin.tab[1]);
  12.    
  13.     return 0;
  14. }
 
Code :
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     typedef union {
  5.         int  *pint;
  6.         char *pchar;
  7.     } truc;
  8.     struct {
  9.         truc tab[2];
  10.     } machin;
  11.     int a = 3;
  12.     char b = 'A';
  13.     machin.tab[0].pint = &a;
  14.     machin.tab[1].pchar = &b;
  15.     printf("%d %c\n",  *machin.tab[0].pint, *machin.tab[1].pchar);
  16.    
  17.     return 0;
  18. }


La seconde solution permet au compilo de mieux faire son boulot de vérification du bon typage.
A+,


Message édité par gilou le 10-04-2013 à 02:32:29

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2185243
archseven
Posté le 10-04-2013 à 21:24:07  profilanswer
 

j'ai réussi à faire ce que je voulais faire grâce à ta réponse (un amas de listes chainées qui s'entrecroisent, c'est pour un jeu).
 
merci bcp !


Message édité par archseven le 10-04-2013 à 21:24:26

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  tableau de pointeur sur structure dans une structure

 

Sujets relatifs
déclaration d'un vector de pointeurDifférence entre pointeur de pointeur et vector de pointeur
vecteur de vecteur ou pointeur de pointeur[C#] Trier un tableau d'objet
Tableau : je dois pouvoir ne pas perdre tous mes cheveux...[WORD 2010] Sélectionner et déplacer une ligne dans un tableau
lsite chainée en ADA avec allocation static des objets dans un tableauHTML tableau colspan
brobleme: tableau de structure 
Plus de sujets relatifs à : tableau de pointeur sur structure dans une structure


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR