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 :

déclaration et création de structure.


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut déclaration et création de structure.
    bonjour tout le monde et bonne année.

    pour le besoin de mon programme, je souhaite utiliser des structure de donnée.

    voici comment je les déclares :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct _TOTO
    {
        unsigned short int a;
        unsigned int z;
        unsigned int e;
    }TOTO
    la question que je me pose est comment on utilise cette structure.
    ou
    dans le 1er cas j'aacède aux attribut de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    test.a = 2;
    test.z ...
    test.e
    dans le 2eme cas j'aacède aux attribut de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    test->a = 2;
    test->z ...
    test->e
    la question que je me pose est quel est la différence entre ces deux facons de réaliser la déclaration et l'utilisation des struct????

    note : dans le 1er cas tout compil bien et dans le 2ème, j'ai deux WARNING!!!!


    [Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Première chose, ici tu n'es pas en C, donc ceci suffit pour déclarer ta structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct TOTO
    {
        unsigned short int a;
        unsigned int z;
        unsigned int e;
    };
    Ensuite, si tu déclares un pointeur (TOTO *) il faut que tu ailles le faire pointer sur une instance valide. Soit une nouvelle allouée avec new, soit une existante dont tu récupères l'adresse avec l'opérateur &. D'ailleurs ton warning doit être du type "test : variable utilisée sans avoir été initialisée".

    Hormis ces utilisations, déclarer un pointeur n'a aucun intérêt à part créer des erreurs et te compliquer la vie. Donc, pour créer une variable automatique (qui sera détruite dès que tu sortiras de sa portée), inutile d'utiliser un pointeur.

    Si ce n'est pas clair pour toi tu devrais peut-être (re)lire un bon cours sur le sujet.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    merci pour cette explication claire et précise. tu avais vu juste en ce qui concerne le warning.

    Mais en ce qui concerne les cours, si tu en as je suis pret a les accepter .

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    Citation Envoyé par Loulou24
    Ensuite, si tu déclares un pointeur (TOTO *) il faut que tu ailles le faire pointer sur une instance valide. . . D'ailleurs ton warning doit être du type "test : variable utilisée sans avoir été initialisée".

    Hormis ces utilisations, déclarer un pointeur n'a aucun intérêt à part créer des erreurs et te compliquer la vie. Donc, pour créer une variable automatique (qui sera détruite dès que tu sortiras de sa portée), inutile d'utiliser un pointeur.
    j'aimerais ne pas utiliser de pointeur, cela me simplifirait le code. Cepedant apres avoir déclarer ma structure, puis apres l'avoir initialiser je fais appel a une fonction qui a besoin du pointeur vers cette structure. si je ne le déclare pas en pointeur j'ai une erreur.

    Existe il un moyen de récupérer le pointeur sur ma structure juste avant l'appel de ma fonction???

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

Discussions similaires

  1. Création de structures hiérarchiques et indexées
    Par matt67 dans le forum MATLAB
    Réponses: 3
    Dernier message: 25/04/2013, 09h45
  2. déclaration/initialisation d'une structure
    Par boboss123 dans le forum C
    Réponses: 8
    Dernier message: 22/09/2010, 17h05
  3. déclaration et définition de structures
    Par dgkourou dans le forum C++
    Réponses: 2
    Dernier message: 07/02/2008, 10h45
  4. Réponses: 3
    Dernier message: 20/08/2007, 17h30
  5. Création de Structure de Site MOSS automatique
    Par my-key dans le forum SharePoint
    Réponses: 3
    Dernier message: 27/07/2007, 10h46

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