begin process at 2012 05 29 01:48:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

comment connaitre la taille d'une structure c


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comment connaitre la taille d'une structure c

vendredi 5 décembre 2008 à 12:05:59 | comment connaitre la taille d'une structure c

flofloo

bonjour tout le monde,
auparavant,t je pensait que pour connaitre la taille d'une structure c mentalement il suffisait de sommer la taille de tout les éléments de la structure mais je découvre après avoir lu ce tuto que c'est pas tout le temps le cas :
http://melem.developpez.com/reseaux/rawsockets/
si quelqu'un peux m'aider a comprendre c'est quoi les contraintes d'alignement et comment on calcule mentalement
la taille d'une structure se serais gentil.
merci d'avance pour vos reponse.


vendredi 5 décembre 2008 à 15:37:25 | Re : comment connaitre la taille d'une structure c

fregolo52

Membre Club
Sommer la taille des éléments d'un structure !!!! Erreur fatale.

Tout dépend comment est configuré le compilo, mais généralement les compilo aligne à 4 ou 8 octets.
Avec l'expérience tu apprendras, t'expliquer est assez difficile il faudrait lister tous les cas.

Si on reprend le totu :
struct s {
char c; /*1octet*/
int n; /*4octets*/
};

Si ton compilo aligne à 4 : sizeof(s) = 8

struct s2 {
char c; /*1octet*/
char c2; /*1octet*/
int n; /*4octets*/
};
Si ton compilo aligne à 4 : sizeof(s2) = 8 (aussi)
D'où de grosse surprise si tu as 2 programmes qui n'alignent pas de la même façon.
J'ai eu ce pb avec un programme Windows et l'autre sous Linux.
vendredi 5 décembre 2008 à 17:19:33 | Re : comment connaitre la taille d'une structure c

flofloo

hein?
si j'ai bin capter tout depend de mon compilateur par defaut je pense que c'est 4 octect..parlez un peux du 2eme cas :
 
     struct s {
            char c;
            short d;
            char l;
            int ent;
    }
sizeof(s) donne 12 pourquoi?svp
vendredi 5 décembre 2008 à 18:13:20 | Re : comment connaitre la taille d'une structure c

BruNews

Administrateur CodeS-SourceS

typedef struct _S {
  char c;
  short d;
  char l;
  int ent;
} S;

Exemple avec une struct S commençant à l'adresse 1000:
adresse de S.c   : 1000
adresse de S.d   : 1002 // multi de 2 !!!
adresse de S.l   : 1004
adresse de S.ent : 1008 // multi de 4 !!!

la struct finira bien à l'adresse 1011, donc 12 octets.

ciao...
BruNews, MVP VC++



Cette discussion est classée dans : taille, connaitre, structure


Répondre à ce message

Sujets en rapport avec ce message

Taille de ma structure [ par crocejf2000 ] Salut a tous, J'ai un tres gros probleme qui me bloque toute mon avancé dans mon prog : j'ai une structure : typedef struct{ unsigned short Locate; ch taille des polices de caractères [ par gagah1 ] Salut à tous!Est-ce quelqu'un sait la relation entre la taille des polices de caractères affiché dans la boite de dialogue commune et lfHeight de la s Fichiers ico, taille et structure ? [ par anarchysniper ] Disposant d'un pointeur vers le début d'un fichier .ico dans une ressource, comment obtenir l'emplacement de la donnée suivante ? En fait il faut que taille d'une structure à partir d'un pointeur sur la structure ? [ par rovkoupov ] Bonjour Je suis à la recherche d'une façon simple pour obtenir la taille en octet d'une struture à partir d'un pointeur sur cette structure. Avec la f Connaitre la taille d un fichier en entrée standard [ par adakick ] Bonjour, je voulais savoir comment on fesait pour connaitre la taille d un fichier sur entrée standard ? Et comme Taille d'une structure en mémoire [ par PeteTheBull ] Bonjour J'ai un petit problème en c++ (sous VC++6). Je défini une structure du style : typedef struct     {         __int64 B;       &nbsp tableau dynamique de structure plusieurs structure différente en C ? [ par Nico_35136 ] Bonjour a tous, Voila je débute dans l'allocation dynamique en C voici mon problème. Je possédé 5 structure de taille différentes qui vont contenir Structure date c [ par hamriham123 ] > le nombr motus en C [ par amine124 ] Bonjour, Je veux créer un petit jeu "motus" qui lit un mot et la comparer par le mot d'or (à trouver); si le joueur trouve qqes lettres, on les affi creation de plusieur tableau [ par foxwar ] Bonjour, j'aimerai cree un programme ki permet de cree plusieur tableau du different taille et les afficher g ecirt ce programme mai je c pa ce k'il


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,512 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales