IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

struct / typedef struct


Sujet :

C

  1. #1
    Membre confirmé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Points : 460
    Points
    460
    Par défaut struct / typedef struct
    Bonjour,

    Je voudrais utiliser dans mon main une structure qui me permetterais de faire comme suit, cependant je n'arrive pas à la définir comme il faut pour que cela marche !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include <stdio.h>
    #include <stdlib.h>
     
    struct mine
    {
           float fer;
           float carbonne;
           float gold;
           float credit;
           float carburant;
    };
     
     
    int main(int argc, char *argv[])
    {
         struct mine *mine_fer;
     
         *(mine_fer+1).fer=20;
         *(mine_fer+1).carbonne=90; 
         *(mine_fer+1).gold=44; 
         *(mine_fer+1).credit=5; 
         *(mine_fer+1).carburant=0;
     
    }
    ** request for member `fer' in something not a structure or union

    Le compilateur me dit que fer, carbonne... n'est pas déclaré alors comment dois-je modifier ma structure pour que cla marche ?

    Merci d'avance
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

  2. #2
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par darkwall_37 Voir le message
    Le compilateur me dit que fer, carbonne... n'est pas déclaré alors comment dois-je modifier ma structure pour que cla marche ?
    Il ne s'agit as d'un problème sur la structure mais sur l'utilisation de celle-ci. En effet l'opérateur . est prioritaire sur * ainsi *(mine_fer+1).fer est vu comme *((mine_fer+1).fer).
    Il faut donc que tu parenthèses correctement l'expression ce qui donne (*(mine_fer+1)).fer qui peut avantageusement être écrit mine_fer[1].fer.

    Indépendamment de ceci, ton code est incorrect. En effet le pointeur mine_fer n'est pas initialisé, il ne peut donc pas être utilisé.

  3. #3
    Membre confirmé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Points : 460
    Points
    460
    Par défaut
    Merci beaucoup, j'étais loin de penser à une erreur de priorité, en tout cas merci une fois de plus, j'index quelque part dans mon cerveau ce type d'erreur maintenant !

    cordialement
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Typedef struct et Methode en C++
    Par Udani dans le forum Débuter
    Réponses: 22
    Dernier message: 04/12/2008, 23h43
  2. Probleme de typedef struct
    Par matdakillah dans le forum Linux
    Réponses: 19
    Dernier message: 01/08/2008, 16h54
  3. Questions sur Typedef Struct
    Par pinto_armindo dans le forum C
    Réponses: 6
    Dernier message: 26/11/2007, 20h22
  4. typedef struct
    Par moon93 dans le forum C
    Réponses: 3
    Dernier message: 10/05/2006, 11h22
  5. Réponses: 6
    Dernier message: 31/08/2005, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo