Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pytanie - sizeof struct

Ostatnio zmodyfikowano 2017-02-25 00:56
Autor Wiadomość
moler
Temat założony przez niniejszego użytkownika
Pytanie - sizeof struct
» 2017-02-23 23:02:15
Witam, testowałem sobie dzisiaj wielkość bajtów w strukturach. Natrafiłem jednak, na bardzo dziwną rzecz.

Gdy mamy np.

struct asd{
        double x;
       
    };
    cout<<sizeof(asd)

Wynikiem będzie 8, jednak jeśli dodamy do tego np. zmienną int, czyli

struct asd{
        double x;
        int z;

    };
    cout<<sizeof(asd)

Wynik będzie już równy 16, domyślam się, że teraz double traktowana jest teraz jako long double.

Byłby ktoś w stanie wytłumaczyć dlaczego tak się dzieje ?
P-158232
carlosmay
» 2017-02-23 23:11:04
Wyłącz wyrównywanie rozmiaru i otrzymasz dokładny rozmiar struktury
C/C++
#pragma pack(push, 1)
struct asd {
    double x;
    int z;
};
#pragma pack(pop)
P-158233
moler
Temat założony przez niniejszego użytkownika
» 2017-02-23 23:19:13
Faktycznie, teraz wskazuje poprawnie.
Dzięki ;)
P-158234
pekfos
» 2017-02-23 23:38:49
W obu przypadkach wskazuje poprawnie. Rozmiar struktury >= suma rozmiarów składników.
P-158236
moler
Temat założony przez niniejszego użytkownika
» 2017-02-24 19:04:24
Jestem dopiero początkujący, nie za bardzo rozumiem, co masz na myśli poprzez  "Rozmiar struktury >= suma rozmiarów składników", czemu czasami może być większy a czasami równy?
P-158268
pekfos
» 2017-02-24 19:27:44
Dokładnie to oznacza >=.
P-158269
michal11
» 2017-02-25 00:56:01
P-158279
« 1 »
  Strona 1 z 1