Stack & Heap — wie Variablen wirklich liegen
Stack:
- LIFO Datenstruktur — Funktion ruft Funktion ruft Funktion.
- Sehr schnell (Pointer‑Inkrement).
- Größe begrenzt (1–8 MB pro Thread).
- Lebensdauer = Funktionsaufruf.
- Klein, fest dimensioniert: ints, bools, structs ohne Heap‑Felder.
Heap:
- Großer Speicherbereich, frei adressierbar.
- Allokation langsamer (System‑Call oder Allocator).
- Lebensdauer beliebig — bis du befreist (oder GC).
- Für: dynamische Datenstrukturen, Slices, große Objekte.
Wer entscheidet?
- C/C++: du explizit (
malloc,new). - Rust: Compiler nach Regeln (Box, &, References).
- Java/C#/Go: kleine Werte Stack, Objekte Heap, GC sammelt ein.
- Python/JS: alles fast immer Heap.
Zurück zu Informatik