Stabelen og haugen er to forskjellige områder med minne som brukes i dataprogrammer.
Stakken
- Stabelen er en avgrenset mengde minne som brukes til å lagre lokale variabler, funksjonsparametere og returadressene for funksjonskall.
– Det kalles en «stack» fordi det siste elementet som legges til stabelen er det første elementet som skal fjernes.
- Stabelen tildeles automatisk når en funksjon kalles, og den deallokeres når funksjonen kommer tilbake.
Hapen
- Heapen er en dynamisk allokert minneområde som kan brukes til å lagre alle typer data.
– Det vokser og krymper etter behov, avhengig av hvor mye minne som etterspørres av programmet.
- Heapen kan nås ved hjelp av pekere.
Forskjell
– Hovedforskjellen mellom stabelen og haugen er at stabelen allokeres og deallokeres automatisk av kompilatoren, mens haugen må tildeles og deallokeres manuelt av programmereren.
Her er en tabell som oppsummerer forskjellene mellom stabelen og heapen:
| Funksjon | Stabel | Heap |
|--------|--------|------|
| Tildeling | Automatisk | Manuelt |
| Deallokering | Automatisk | Manuelt |
| Størrelse | Avgrenset | Dynamisk |
| Tilgang | Pekere | Pekere |
| Formål | Lokale variabler, funksjonsparametere, returadresser | Alle typer data |