[C] Non reconnaissance Membre strcucture

Résolu/Fermé
ekra Messages postés 1867 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 - 5 avril 2007 à 22:29
mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 - 6 avril 2007 à 13:06
Bonjour,

Bon, voilà plusieurs plombes que je n'arrive pas à résoudre une erreur... Si vous pouviez m'aider ça serait sympa :)

$ gcc -I../include -W -Wall -pedantic -c operations.c
operations.c: Dans la fonction «lol» :
operations.c:29: erreur: «struct Neurone» has no member named «etatSortie»

$ gcc -E -I../include -W -Wall -pedantic operations.c
# 1 "operations.c"
# 1 "<interne>"
# 1 "<ligne de commande>"
# 1 "operations.c"
# 24 "operations.c"
# 1 "../include/reseau.h" 1
# 29 "../include/reseau.h"
typedef struct Neurone {

  float etatInterne;

  float etatSortie;

  float *poids;
} Neurone;




typedef struct Couche {

  Neurone* neurone;

  int nbNeurones;
} Couche;




typedef struct Reseau {

  Couche* couche;

  int nbCouches;

  int tempFormelle;

  float coeffApprentissage;

  float (*f)(float,int);
} Reseau;
# 25 "operations.c" 2


void lol(Reseau reseau) {
  reseau.couche[0].neurone[2].etatInterne=2;
  reseau.couche[0].neurone[2].etatSortie=2;
}



Remarque : etatInterne est bien reconnu... Langue au chat.
Merci :)

5 réponses

mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 7 572
5 avril 2007 à 23:03
typedef struct Neurone {
    float etatInterne;
    float etatSortie;
    float *poids;
} Neurone;

typedef struct Couche {
    Neurone* neurone;
    int nbNeurones;
} Couche;

typedef struct Reseau {
    Couche* couche;
    int nbCouches;
    int tempFormelle;
    float coeffApprentissage;
    float (*f)(float,int);
} Reseau;

void lol(Reseau reseau) {
    reseau.couche[0].neurone[2].etatInterne=2;
    reseau.couche[0].neurone[2].etatSortie=2;
}

int main(){
    return 0;
}

Ben ça chez moi ca compile très bien. Donc soit tu as mal copié collé, soit il nous manque les sections de code à problème.

Bonne chance
0
ekra Messages postés 1867 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342
5 avril 2007 à 23:03
C'est très étrange parceque su je mets le fichier inclus et le fichier .c dans le même repertoire cela marche.

Je ne saisis pas du tout :(

Pensez-vous que ce soit un bug de gcc ?
0
ekra Messages postés 1867 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342
5 avril 2007 à 23:13
OK, merci.

Pourtant regarde j'ai préparé une archive simplifiée du problème disponible ici :
http://ekra.free.fr/Fichiers/bug.tar.gz

Avec un script tout fait dans src qui me provoque l'erreur. Si jamais tu as le temps tu peux m'en donner le résultat chez toi.

Pour ma part il me produit :
$ ./bug_script.sh
operations.c: Dans la fonction «lol» :
operations.c:29: erreur: «struct Neurone» has no member named «etatSortie»

Je te remercie en tout cas de ton intervention.
0
ekra Messages postés 1867 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342
6 avril 2007 à 11:45
Re

J'ai enfin trouvé la solution ! Dans les include/ j'avais compilé un .h suite à une erreur quelques jours auparavent en écrivant le Makefile.
Apparemment, gcc se servait du reseau.h.gch au lieu du reseau.h modifié.
=> rm reseau.h.gch

De longues heure de perdues !

Merci a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 7 572
6 avril 2007 à 13:06
Ok :-)
0