Tablice statyczne są wygodne. Ogłaszasz je, a oni po prostu tam siedzą i modlisz się, żeby nie trafić w zły rozmiar. Ale co się stanie, gdy zmienią się dane wejściowe? Tutaj w grę wchodzą dynamiczne struktury danych. Rosną i zmniejszają się na żądanie, przydzielając pamięć ze sterty dokładnie wtedy, gdy jest potrzebna i zwracając ją, gdy nie jest już potrzebna.
W C to nie tylko wygoda. Jest to konieczne, aby kontrolować zużycie pamięci. Nie tylko przechowujesz dane; kontrolujesz fizyczną przestrzeń, którą zajmują.
Jak sterta zapewnia elastyczną alokację pamięci
Pomyśl o stercie jako o wspólnej puli. W przeciwieństwie do stosu, który jest sztywny i szybki, sterta jest elastyczna, ale wymaga ręcznego sterowania. Dynamiczne struktury danych działają poprzez pobieranie fragmentów z tej sterty w razie potrzeby. Nie tylko leżą obok siebie w pamięci. Są one połączone ze sobą za pomocą wskaźników, tworząc łańcuchy, drzewa lub listy.
Kiedy blok nie jest już potrzebny, jest zwracany na stertę. Ten recykling jest kluczowy. Oznacza to, że nie marnujesz pamięci RAM na puste komórki w tablicy o stałym rozmiarze. Używasz tylko tego, czego program wymaga w danej chwili.
Efektywne wykorzystanie pamięci nie polega na oszczędzaniu miejsca. Chodzi o uniknięcie katastrofy, która ma miejsce, gdy skończy się miejsce.
Aby naprawdę zrozumieć, jak to działa, musisz zrozumieć samą stertę. To jest podstawa. Bez tego wskaźniki są po prostu pływającymi łączami donikąd. Dzięki niemu budujesz struktury, które się dostosowują.






























