Quote:
et pas moyen de comprendre pq
Parce que le compilateur ne peut voir la taille de client au moment où il compile la ligne et qu'il a besoin de cette taille pour calculer la taille de baseDonnee[20]
Tu fais une déclaration anticipée "struct client" Ca, ça dit que le type existe, mais ça ne donne pas sa taille au compilateur, qui ne fait pas la démarche d'aller voir "plus loin" dans le code. On est en C là, pas en Lisp ;)
Si tu enlèves cette déclaration anticipée et qu'à la place tu mets
struct client
{
char nom[15];
char prenom[15];
int age;
char sexe;
};
qui pour l'instant est à la fin du code, le compilateur pourras connaître la taille et ça compileras.
Les déclarations anticipées, ça ne marche pas dans tous les cas de figure.
Parce que le compilateur ne peut voir la taille de client au moment où il compile la ligne et qu'il a besoin de cette taille pour calculer la taille de baseDonnee[20]
Tu fais une déclaration anticipée "struct client" Ca, ça dit que le type existe, mais ça ne donne pas sa taille au compilateur, qui ne fait pas la démarche d'aller voir "plus loin" dans le code. On est en C là, pas en Lisp ;)
Si tu enlèves cette déclaration anticipée et qu'à la place tu mets
struct client
{
char nom[15];
char prenom[15];
int age;
char sexe;
};
qui pour l'instant est à la fin du code, le compilateur pourras connaître la taille et ça compileras.
Les déclarations anticipées, ça ne marche pas dans tous les cas de figure.