Statická pole jsou pohodlná. Oznámíte je, oni jen sedí a vy se modlíte, abyste nedostali špatnou velikost. Co se ale stane, když se vstup změní? Zde vstupují do hry dynamické datové struktury. Rostou a zmenšují se na vyžádání, přidělují paměť z hromady přesně tehdy, když je potřeba, a vracejí ji, když už není potřeba.

V C to není jen pohodlí. To je nezbytné pro řízení spotřeby paměti. Neukládáte pouze data; ovládáte fyzický prostor, který zabírají.

Jak halda poskytuje flexibilní alokaci paměti

Představte si haldu jako sdílený bazén. Na rozdíl od stohu, který je tuhý a rychlý, je hromada flexibilní, ale vyžaduje ruční ovládání. Dynamické datové struktury fungují tak, že podle potřeby uchopíte kousky z této hromady. Neleží vedle sebe jen na památku. Jsou vzájemně propojeny pomocí ukazatelů, tvořících řetězce, stromy nebo seznamy.

Když už blok není potřeba, vrátí se na hromadu. Tato recyklace je klíčová. To znamená, že nebudete plýtvat RAM na prázdné buňky v poli s pevnou velikostí. Použijete pouze to, co program v danou chvíli vyžaduje.

Efektivní využití paměti není o úspoře místa. Jde o to vyhnout se havárii, ke které dojde, když dojde místo.

Abyste skutečně pochopili, jak to funguje, musíte porozumět samotné hromadě. To je základ. Bez něj jsou ukazatele jen plovoucí odkazy nikam. S ním budujete struktury, které se přizpůsobují.