[ Pharos @ 24.01.2006. 17:30 ] @
Povezane liste predstavljam kao typedef struct elem {int broj; struct elem* sled;}Elem; I onda Elem* lst=NULL; I sad fino napravim funkciju koja dodaje elemente na početak ili kraj liste i dodam jedno 3 elementa. Pogledam adrese tih elemenata u memoriji preko printf i dobijem sledeće vrednosti 3280848 3280904 3280960 Onda sa printf pogledam sizeof(Elem) kad ono dobijem 8 bajtova. Pogledam sizeof lst->broj i sizeof lst->sled kad ono svaki zauzima po 4 bajta. Sad mene zanima sledeće. Prvi element u listi se nalazi na adresi 3280848, a drugi na 3280904. Kad oduzmem ta dva broja dobijem 56 što predstavlja količinu memomirje u kojoj je smešten 1 element izražen u bitovima. Odnosno 1 element zauzima 7bajtova u memoriji. Kako onda sa sizeof(Elem) dobijem 8 i svaki od članova tog elementa zauzima po 4 bajta, a ukupno zauzeće u memoriji je 7. Gde nestade taj bajt? |