Strukturen zu groß



  • Hi

    Ich bin mir nicht ganz sicher aber ich glaube das mein Problem mit Visual Studio .NET 2003 zu tun hat.

    Ich will von einer Datei ein paar daten lesen die ich in einer struktur gespeichert habe.

    struct SHeader
    {
       char  m_ID[10];
       int   m_Version;
    };
    

    Mein Problem ist dass in der Datei genau 14 Bytes stehen meine Struktur hat aber 16 Bytes. Ich glaube dass der Compiler das Array automatisch vergrößert oder so. Ich habe keine Ahnung wie ich das abstellen soll
    Danke schon im Vorraus

    Ohama



  • er fügt 2 füllbytes an m_ID dran, damit m_Version an einer durch 4 teilbaren adresse beginnt.
    probier:

    #pragma pack(1)
    

    vor der struct-definition



  • hat mit dem low level speichermanagement zu tun, es wird immer nur auf vielfache von 4 gesprungen. und auf die 2 die da unverbraucht im speicher liegen wird verzichtet, weil mit vielfachen von 4 schneller geht



  • Noch dazu, dass dein Programm hier ohne Alignment auf z.B. dem Itanium abschmiert...


Anmelden zum Antworten