GRY-Online.pl --> Archiwum Forum

C++/C wielkość struktury

30.03.2010
12:24
[1]

mac2000 [ Konsul ]

C++/C wielkość struktury

W programie mam taką strukturę:

struct box‹
box *nast; //wskaźnik do następnego elementu w liście
unsigned char c; //znak
›;

Dlaczego gdy tworzę nowy obiekt przez "new box", całość zajmuje 8 Bajtów, a nie np. 2 ?
Gdy tworze listę z 10 000 000 elementami program pobiera ponad 80 MB pamięci. Można jakoś zmniejszyć ilość zabieranej pamięci przez tą strukturę?

30.03.2010
12:44
[2]

Voutrin [ łojant ]

poczytaj sobie o dyrektywie #pragma pack.

30.03.2010
13:07
[3]

Scatterhead [ P ]

jeżeli w tej strukturze masz tylko znak, to jest ona bardzo nieefektywma.

unsigned char to jeden bajt, a wskaznik, zalezy od architektury, ale o wiele wiecej. wiec masz bardzo duzy narzut wielkosci samej struktury, w ktorej sama zawartosc zajmuje o wiele mniej miejsca.

© 2000-2025 GRY-OnLine S.A.