Variables du même type en C

Fermé
pedroops Messages postés 28 Date d'inscription mercredi 17 février 2010 Statut Membre Dernière intervention 20 mai 2010 - 20 mai 2010 à 15:34
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 21 mai 2010 à 14:40
Bonjour,

j'ai une question concernant un programme en C !
J'ai construit un type de donnée que j'ai appelé "t_fourmi" et j'ai fait un petit programme pour jouer avec la variable "fourmi" de type "t_fourmi" ! maintenant je veux faire apparaitre plusieurs fourmis de type "t_fourmi" mais vu que le nombre est 50 je ne peux pas le faire une par une !

est-ce que je peux les déclarer comme ça :

int i;
t_fourmi fourmi[i]

et jouer sur les variables :

for (i=0;i=nombre_de_fourmis;i++)
{
//opération sur "fourmi[i]"
}


OU, je crée un type t_Vectfourmi qui sera un vecteur de variable de type t_fourmi et le déclarer comme ça :

#define nombre_de_fourmis 50

typedef t_fourmi t_Vectfourmi[nombre_de_fourmis]

...

int i;
t_Vectfourmi fourmiz;

for (i=0;i=nombre_de_fourmis;i++)
{
//opération sur "fourmiz[i]"
}



sachant que j'ai essayé les deux méthode et ça ne marche pas !


merci pour votre aide

A voir également:

2 réponses

SchSoftware Messages postés 46 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 17 avril 2011 3
20 mai 2010 à 23:12
Bonsoir

L'accès par tableau est (il me semble) plus rapide et devrait fonctionner, par contre, soit tu a fait une erreur de frappe ici, soit dans ton programme

int i;
t_fourmi fourmi[nombre_de_fourmis]; // et non pas fourmi[i]

for (i = 0 ; i = nombre_de_fourmis ; i++)
{
}

Par contre, dans cette exemple, vous créer 50 occurrence de votre type "t_fourmi" mais avez vous fait attention à leurs porter (leurs durée de vie!)

Par exemple, si vous appeler ce code à chaque fois que vous appuyer sur une touche, elle ne dureront (ainsi que les opérations que vous leur appliqué) QUE durant cette fonction...

Peu être qu'un peu de détail quand au contexte d'utilisation pourrais aider pour une meilleur réponse si celle ci n'as pas aider...

Bien à vous
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
21 mai 2010 à 14:40
int i;
t_fourmi fourmi[i] ...

ca marche pas ca, car l'espace d'une variable est allouée à la compilation

la syntaxe correcte est

int i;
t_fourmi *fourmi = new t_fourmi[i]
0