begin process at 2012 05 30 18:21:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Taille de ma structure


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

Taille de ma structure

vendredi 14 mars 2003 à 10:07:31 | Taille de ma structure

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;
char Taille;
} MaStructure;

ca me permet d'aller lire dans un fichier et de remplir cette structure, mais VC++ me dit qu'elle fait 4 octet alors qu'elle n'en fait que 3 (2 pour ushort et 1 pour le char).

du coup, quand je lit mon fichier, ca saut 1 octet a chaque fois. Comment faire pour que ma structue ne fasse bien que 3 octets ?

Merci beacoup, Hart
vendredi 14 mars 2003 à 13:56:54 | Re : Taille de ma structure

BruNews

Administrateur CodeS-SourceS
VC++ a raison, comme toujours ou presque.
Toi, tu y a mis une taille de 3 octets et c'est MAUVAIS, alors lui la passe a 4 pour aligner les donnees.
Tu peux changer comportement du compilo mais c'est tres mauvais pour les performances.
Il faut TOUJOURS aligner tes donnees au moins sur un multiple de 4 qui est sizeof(DWORD), c'est a dire la taille d'un registre, EAX etc, du processeur 32 bits.
Pour conclure tu refais:
typedef struct {
unsigned short Locate;
char Taille[2];
} MaStructure;

MaStructure a;
tu te serviras de
a.Taille[0]
en place de a.Taille
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> 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;
> char Taille;
> } MaStructure;
>
> ca me permet d'aller lire dans un fichier et de remplir cette structure, mais VC++ me dit qu'elle fait 4 octet alors qu'elle n'en fait que 3 (2 pour ushort et 1 pour le char).
>
> du coup, quand je lit mon fichier, ca saut 1 octet a chaque fois. Comment faire pour que ma structue ne fasse bien que 3 octets ?
>
> Merci beacoup, Hart
vendredi 14 mars 2003 à 14:47:08 | Re : Taille de ma structure

crocejf2000

Merci pour ta réponce mais j'ai enfin trouver le remede a mon probleme.
Déja, je ne peut pas faire autrement pour lire le fichier car c'est un fichier mapping qui provient de commandes numériques et je ne peut pas changer la maniere dont il est fait. Alors avec un #pragma pack(1) juste avant le déclaration de la strucure ca fonctionne bien. Donc c'est cool, j'ai pas a tout refaire !

Merci a toi, bonne prog
Hart


-------------------------------
Réponse au message :
-------------------------------

> VC++ a raison, comme toujours ou presque.
> Toi, tu y a mis une taille de 3 octets et c'est MAUVAIS, alors lui la passe a 4 pour aligner les donnees.
> Tu peux changer comportement du compilo mais c'est tres mauvais pour les performances.
> Il faut TOUJOURS aligner tes donnees au moins sur un multiple de 4 qui est sizeof(DWORD), c'est a dire la taille d'un registre, EAX etc, du processeur 32 bits.
> Pour conclure tu refais:
> typedef struct {
> unsigned short Locate;
> char Taille[2];
> } MaStructure;
>
> MaStructure a;
> tu te serviras de
> a.Taille[0]
> en place de a.Taille
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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;
> > char Taille;
> > } MaStructure;
> >
> > ca me permet d'aller lire dans un fichier et de remplir cette structure, mais VC++ me dit qu'elle fait 4 octet alors qu'elle n'en fait que 3 (2 pour ushort et 1 pour le char).
> >
> > du coup, quand je lit mon fichier, ca saut 1 octet a chaque fois. Comment faire pour que ma structue ne fasse bien que 3 octets ?
> >
> > Merci beacoup, Hart
>


Cette discussion est classée dans : fichier, taille, octet, char, structure


Répondre à ce message

Sujets en rapport avec ce message

nombre de caractère [ par mig73 ] salut à tousje suis sous visual c++.netj'ai utilisé la fonction suivante:CFile::GetLenght qui me donne la taille en octet du fichier que je lisA parti 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 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 lecture fichier [c++ builder] [ par SaXo360 ] Bonjour, je lis dans un fichier des noms séparé par ce caractèere ';' et je devrait afficher ces noms dans mon combobox mais cane veut pas pourtant je Malloc et mémoire affectée [ par Chop_chop ] Bonjour,J'ai un petit soucis quant à l'allocation de mémoire pour un char* avec l'utilisation de malloc.Voici mon code (bien allégé) :[CODE] char *fic ouvrir plusieur fichierx textes [ par seignseifer ] Bonjour, alors je voudrais ouvrir plusieurs fichier textes pour mon programme. J'ai un peu avance mais je bloque sur quelquechose. Je fais une boucle URGENT : pb de conexion avec mysql_real_connect [ par Stephworlds ] salut a tousC'est éxtrémement urgent.Je doit me connecter sur une base de donées distante. Mon programme compile. Mais lorsque je lance l'appli la con aide c++ structure [ par buse974 ] salut tout le monde je prend des cour par le cned et j'ai un exo qui me cause probleme je doit cree un programme qui traduit une phrase taper en code taille fichier [ par dacor ] bonjour,comment peut on récupéré la taille d'un fichier ?merci listes chainées [ par tony_77 ] bonjour,J'ai un projet à faire en C++, je suis débutant.J'ai choisi d'utiliser une liste chainée que je sauvegarde ds un fichier .txt.Il faut donc que


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 1,014 sec (3)

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