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 de taille d'une structure


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Par défaut Problème de taille d'une structure
    Bonjour à tous,

    J'ai un problème avec la taille d'une structure que j'ai crée.

    Ma structure est la suivante :
    struct nrg {
    char Id[3];
    double D1;
    char SS;
    char GG;
    double D2;
    double DD;
    float ES;
    float EG;
    float ED;
    float NN;
    int MM;
    float VS;
    float VG;
    float VD;
    } Trame;
    Quand, je demande à connaitre la taille de ma "Trame" avec :
    sizeof(Trame);
    Le résultat est de 72 octets alors qu'il devrait être de 68.
    Je suis sous Windows XP SP3 et VisualStudio 6.0 .

    Merci d'avance pour votre aide.

    Cordialement.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Par défaut Erreur sur champ Id
    J'ai fait une erreur lors de la copie de ma structure, il faut lire :
    Et non :
    Cordialement.

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Le compilateur va aligner les données, c'est à dire qu'il va ajouter des espaces entre certains champs.

    La raison vient du processeur veut voir commencer des données à certaines adresses.

    alignement de données

    Voir aussi cette discussion : http://www.developpez.net/forums/d86...le-structures/

  4. #4
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Citation Envoyé par malikben83
    Le résultat est de 72 octets alors qu'il devrait être de 68.
    Une histoire de padding où le compilateur respecte des spécificités d'alignement des données.

    Pour spécifier au compilateur de ne pas faire d'alignement, tu dois indiquer la directive:
    ou faire ainsi pour seulement encadrer les structures de ton choix:
    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
    #pragma pack(push, 1)
    struct nrg {
    char Id[4];
    double D1;
    char SS;
    char GG;
    double D2;
    double DD;
    float ES;
    float EG;
    float ED;
    float NN;
    int MM;
    float VS;
    float VG;
    float VD;
     
    } Trame; 
    #pragma pack(pop)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Par défaut Un grand merci
    Un grand merci pour votre aide et pour les explications.

    Cordialement.

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

Discussions similaires

  1. Problème de tableau dans une structure
    Par zarbiman dans le forum Réseau
    Réponses: 5
    Dernier message: 15/12/2007, 18h21
  2. problème de remplissage d'une structure
    Par dereck1333 dans le forum Débuter
    Réponses: 11
    Dernier message: 08/12/2007, 18h43
  3. Problème de taill d'une div en float:left
    Par Khrysby dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 27/05/2007, 01h48
  4. Réponses: 17
    Dernier message: 09/03/2007, 18h13
  5. [Linux]problème d'affectation d'une structure
    Par cimcim dans le forum Linux
    Réponses: 5
    Dernier message: 11/12/2006, 17h13

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