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 :

Problème lors de la déclaration d'une variable de type structure


Sujet :

C

  1. #1
    Nouveau membre du Club Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Points : 34
    Points
    34
    Par défaut Problème lors de la déclaration d'une variable de type structure
    Salut, je comment à créer mes propres variables et là j'en est créée une mais .... je ne sais pas comment l'expliquer regarder:

    dans le fichier ".h":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #ifdef DEF_PROT
    #define DEF_PROT
    typedef struct pers pers;
    struct pers
    {
           char nom [100];
           char prenom [100];
    };
     
    #endif
    dans le fichier ".c":
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include "prot.h"
    int main(int argc, char *argv[])
    {
       struct pers joueur [3];
        if (joueur < 3)
        {
        printf("Quel est votre nom ? ");
        scanf("%s", joueur.nom);
        printf("Votre prenom ? ");
        scanf("%s", joueur.prenom);
        joueur ++;
        }
      
      system("PAUSE"); 
      return 0;
    }
    et quand j'éssaye de compiler cela me marque :"storage size of 'joueur' isn't know"

    Ps: j'ai agrandi, souligné, et mis en rouge le truc qui ne marche pas

    Merci!
    Visual C++ Forever and ever ...

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Moi je ferais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef  struct pers
    {
           char nom [100];
           char prenom [100];
    } pers;
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    Citation Envoyé par samy100
    Salut, je comment à créer mes propres variables et là j'en est créée une mais .... je ne sais pas comment l'expliquer regarder:

    dans le fichier ".h":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #ifdef DEF_PROT
    #define DEF_PROT
    C'est bien de vouloir se protéger des inclusions multiples, mais autant le faire correctement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #ifndef DEF_PROT
    #define DEF_PROT
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Pour compléter les commentaires , ce code est certainement faux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    struct pers joueur[3];
    ....
    if (joueur < 3) {
    joueur est un tableau de struct pers et donc sa valeur est l'adresse du début du tableau et n'a rien à voir avec le "nombre de joueur".
    L'accès aux éléments du tableau ne peut pas se faire par incrément de joueur (ce qui est impossible à faire d'ailleurs)
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  5. #5
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     if (joueur < 3)
        {
        printf("Quel est votre nom ? ");
        scanf("%s", joueur.nom);
        printf("Votre prenom ? ");
        scanf("%s", joueur.prenom);
        joueur ++;
        }
    Ce n'est pas une boucle.
    L'accés aux structures se fait avec:joueur[].
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  6. #6
    Nouveau membre du Club Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Points : 34
    Points
    34
    Par défaut
    Ok merci!

    pour faire la boucle je remplace le if par un do while c'est bien ça?
    Visual C++ Forever and ever ...

  7. #7
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Oui ou une boucle for.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

Discussions similaires

  1. Réponses: 19
    Dernier message: 05/05/2008, 16h45
  2. Problème d'ancre lors du rafraichissement d'un opener dans une frame
    Par Rawone dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/06/2006, 00h54
  3. Réponses: 4
    Dernier message: 22/05/2006, 14h22
  4. excel -> test lors de la perte du focus d'une cellule
    Par greg778 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 26/09/2005, 17h26
  5. Réponses: 3
    Dernier message: 01/12/2004, 09h43

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