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

  FORUM HardWare.fr
  Programmation
  C

  Tableau dynamique dans une structure

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableau dynamique dans une structure

n°1488733
kerrighan
Carpe diem, seize the day...
Posté le 08-12-2006 à 16:51:43  profilanswer
 

Bonjour,
 
Je suis newbie en C mais j'ai besoin de créer pour un programme un structure qui contiendrait un tableau dynamique.
Est ce possible et comment dois je m'y prendre pour allouer la mémoire?
 

Code :
  1. struct ma_structure{
  2. int var1;
  3. int * tab[];
  4. }ma_structure;
  5. int taille = 10;
  6. ma_structure * instance;
  7. instance = (ma_structure *) malloc(taille*sizeof(ma_structure));
  8. instance[i].tab = (int *) malloc(taille*sizeof(int));

mood
Publicité
Posté le 08-12-2006 à 16:51:43  profilanswer
 

n°1488737
theshockwa​ve
I work at a firm named Koslow
Posté le 08-12-2006 à 16:55:50  profilanswer
 

si tu veux un tableau d'entiers, alors déclare simplement un int *tab;

n°1488738
kerrighan
Carpe diem, seize the day...
Posté le 08-12-2006 à 16:58:27  profilanswer
 

oui mais comment dois je m'y prendre pour allouer la mémoire?

n°1488740
theshockwa​ve
I work at a firm named Koslow
Posté le 08-12-2006 à 17:00:28  profilanswer
 

Code :
  1. struct MaStructure {
  2.   int *tab;
  3. };
  4. // ...
  5. {
  6.   size_t taille=100;
  7.   struct MaStructure s;
  8.   s.tab = malloc(taille*sizeof(int));
  9. }
 

(on ne caste pas un malloc, en C ... si ca te génère un warning, c'est que tu compiles en C++)


Message édité par theshockwave le 08-12-2006 à 17:01:17
n°1488747
kerrighan
Carpe diem, seize the day...
Posté le 08-12-2006 à 17:05:15  profilanswer
 

Ah oui ca passe beaucoup mieux ;)
 
Merci


Message édité par kerrighan le 08-12-2006 à 17:05:30
n°1488863
jesus_chri​st
votre nouveau dieu
Posté le 08-12-2006 à 19:47:16  profilanswer
 

Code :
  1. struct ma_structure
  2. {
  3.    int var1;
  4.    int tab[];
  5. };
  6. struct ma_structure* m = malloc(sizeof struct ma_structure + 42 * sizeof int);


 
style C99, surallouer une allocation de structure pour créer un tableau. Le tableau doit être le dernier membre de la structure. Ici j'ai alloué 42 entiers dans tab.

n°1488890
kerrighan
Carpe diem, seize the day...
Posté le 08-12-2006 à 21:21:28  profilanswer
 

mais ce qu'il me faut, c'est un tableau de pointeurs :/

n°1488938
Emmanuel D​elahaye
C is a sharp tool
Posté le 09-12-2006 à 00:59:46  profilanswer
 

kerrighan a écrit :

mais ce qu'il me faut, c'est un tableau de pointeurs :/


Alors int **.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1488980
jesus_chri​st
votre nouveau dieu
Posté le 09-12-2006 à 10:43:10  profilanswer
 

kerrighan a écrit :

mais ce qu'il me faut, c'est un tableau de pointeurs :/


 
Au temps pour moi, j'avais pas noté le int*[]. Alors voilà, même principe, en C99 uniquement.
 

Code :
  1. struct ma_structure
  2. {
  3.    int var1;
  4.    int* tab[];
  5. };
  6. struct ma_structure* m = malloc(sizeof struct ma_structure + 42 * sizeof int*);

n°1489064
kerrighan
Carpe diem, seize the day...
Posté le 09-12-2006 à 15:54:39  profilanswer
 

merci messieurs :jap:


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

  Tableau dynamique dans une structure

 

Sujets relatifs
[Javascript] innerHTML et objet dynamiqueTableau à commencer à l'indice 0
Etat sous forme de TableauTrier un tableau ...
classement par points dans un tableau[Résolu] Vérification en javascript d'un tableau dynamique en PHP
Tableau de record et de type énumépage html dynamique
Comment trier un tableau ? 
Plus de sujets relatifs à : Tableau dynamique dans une structure


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