Bonjour à tous,
J'aurai quelques questions à vous poser en ce qui concerne le passage de structures en C. Comme c'est un peu comme les pointeurs, je me mélange les pinceaux. Donc je vais vous donner mes lignes pour essayer de résoudre mon problème ;)
J'ai déclaré une structure comme suit:
typedef struct// Structure d'une stratégie
{
struct // Structure d'une entité
{
char choix; // Valeur correspondant au choix (C,T [ou R] ) définissant le coup
int score;
} entite;
int nb_entite; // Défini le nombre d'entités dans cette stratégie
} strategie;
Et ensuite j'ai fait:
strategie strag[10];
D'après notre prof de prog, pour faire passer une variable d'une structure créée par l'utilisateur, il faut utiliser un pointeur.
Pour faire passer une seule case de ce tableau dans une fonction:
void hihi(strategie *strag)
Et j'appelle cette fonction avec:
hihi(&strag[10]);
Par contre comment faire pour faire passer l'intégralité du tableau dans ma fonction. En utilisant un double pointeur ca fonctionne pas.
En fait j'ai trouvé, je fais la fonction comme ça:
void hihi2(strategie strag[])
et j'appelle la fonction avec:
hihi2(&strag);
Ce que je ne comprends pas, c'est que Dev-Cpp me déclare des erreurs bizarres. Dans ma fonction où je ne fais rentrer qu'une seule case du tableau, il faut que j'utilise '->' pour atteindre mes différents champs de strucutres.
Par contre, quand je fais passer le tableau entier, premièrement je déclare un pointeur classique ce qui n'est pas logique (si on déclare un pointeur pour une case d'un tableau, il faudrait déclarer un double pointeur pour tout le tableau) et deuxièmement, je ne dois plus utiliser '->' car il me dit erreur mais revenir à l'utilisation du '.'
Soit je n'ai pas compris la différence entre le. et le -> dans les structures, soit c'est vraiment bizarre...
Si quelqu'un peut m'éclairer, ca serait gentil.
Msg aux modos: N'hésitez pas à retoucher mon texte si il est mal mis en page, je n'ai pas trouver l'option "citation de code"...
Manger c'est tricher.
Vomir c'est trahir.
Dormir c'est mourir.