Stakken og heapen er to forskellige hukommelsesområder, der bruges i computerprogrammer.
Stakken
- Stakken er en afgrænset mængde hukommelse, der bruges til lagring af lokale variabler, funktionsparametre og returadresser for funktionskald.
- Det kaldes en "stak", fordi det sidste element, der er tilføjet til stakken, er det første element, der skal fjernes.
- Stakken tildeles automatisk, når en funktion kaldes, og den deallokeres, når funktionen vender tilbage.
Dyngen
- Heapen er en dynamisk allokeret hukommelsesområde, der kan bruges til at gemme enhver type data.
- Det vokser og krymper efter behov, afhængigt af mængden af hukommelse, der efterspørges af programmet.
- Hoben kan tilgås ved hjælp af pointere.
Forskel
- Den største forskel mellem stakken og heapen er, at stakken tildeles og deallokeres automatisk af compileren, mens heapen skal allokeres og deallokeres manuelt af programmøren.
Her er en tabel, der opsummerer forskellene mellem stakken og heapen:
| Funktion | Stak | Hobe |
|--------|--------|------|
| Tildeling | Automatisk | Manuelt |
| Deallokering | Automatisk | Manuelt |
| Størrelse | Afgrænset | Dynamisk |
| Adgang | Pointer | Pointer |
| Formål | Lokale variabler, funktionsparametre, returadresser | Enhver type data |