Struktura - położenie składników w pamięci

0

Czy składniki struktury występują jeden po drugim, czy mogą być rozrzucone po całej pamięci?

0

Występują w takiej kolejności, w jakiej zostały zdefiniowane wewnątrz struktury, choć nie muszą przylegać do siebie (patrz wyrównanie pól struktury).

0

Z tym, że jeśli w strukturze są wskaźniki, to wewnątrz struktury są tylko te wskaźniki. Wskazywane przez nie dane mogą być rozrzucone. Tu nam wychodzi na jaw, że wbrew temu co się często mówi, tablica to nie to samo co wskaźnik:

/* ta struktura ma rozmiar 4 bajtów (na systemach o 32-bitowych wskaźnikach) */
struct struktura1 {
  char* napis; // wskaźnik! właściwe dane są gdzie indziej (albo nigdzie, jeśli NULL)
};

/* ta struktura ma rozmiar 256 bajtów */
struct struktura2 {
  char napis[256]; // dane! 256 bajtów tablicy znajduje się *tutaj*, w strukturze.
};

1 użytkowników online, w tym zalogowanych: 0, gości: 1