Skip to main content

Co je to alokace dynamické paměti?

Dynamická alokace paměti, také nazývaná alokace paměti založená na haldách, je typ správy paměti, který je ostře kontrastován při přidělování statické paměti.Při alokaci dynamické paměti programátor řekne počítači přesně, kolik paměti pro každý program a jak dlouho drží paměť.To řeší mnoho problémů, které se vyskytují při přidělování statické paměti, jako je nadužívání paměti a zastavené programy.I když řeší mnoho problémů, pokud programátor zapomene říct paměti, která má být vyřazena, pak se dynamická paměť může stát problémem.

Počítače, ve výchozím nastavení, použijte statickou alokaci paměti.To znamená, že paměť se drží programů, když jsou používána, i když se program již nepoužívá nebo pokud se udržovací paměť stane nebezpečnou nebo překážkou výkonu.Pokud například uživatel přestane spustit program, který na 3 MB počítači vezme 2 megabajty (MB), a druhý program potřebuje další 2 MB, druhý program nebude fungovat.Je to proto, že v počítači nezůstane dostatek paměti pro druhý program.paměť pro uvolnění zdrojů.Proto pokročilí uživatelé často používají dynamické přidělování paměti.Programátor je schopen ovládat vše o paměti, včetně toho, jak dlouho drží zdroje.programy k otevření.Toho lze provést, protože statická paměť obvykle drží vše o programu, zatímco dynamická paměť umožňuje programátorům nastavit ji na nižší hodnotu, která obsahuje některá data, ale ne všechno.Současně bude stále potřeba statická paměť a může být nastavena v tomto schématu přidělování.

Potenciální problém s přidělováním dynamické paměti a mdash;ten, který zřídka přichází do hry mdash;je to, že dynamická paměť se může vyplnit, pokud programátor zapomene nastavit časovou hodnotu.Pokud není nastavena žádná časová hodnota, na rozdíl od statické paměti, která nakonec uvolní paměť, bude dynamická paměť držet informace.Pokud má program aplikaci pro skládku na odpadky a většina to udělá, aktivuje se po určitém čase, aby vyčistila paměť.Stále je nejlepší praxe stanovit časovou hodnotu pro přidělování paměti.