Zurück zur Übersicht

Begriff

Stack Overflow

Computer Science Programming S3
2 Quellen 0 Lernpfade 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Dein Programm hat ein Kurzzeitgedächtnis für Funktionen: Den Call Stack. Jedes Mal, wenn eine Funktion eine andere Funktion ruft, legt der Computer einen Zettel auf den Stapel: "Ich war hier bei Zeile 10, komm hierher zurück." Der Stapel hat aber nur Platz für z. B. 10.000 Zettel. Wenn du eine Endlos-Rekursion baust ("Funktion A ruft Funktion A ruft Funktion A..."), wird der Stapel immer höher. Irgendwann kippt er um (oder stößt an die Decke). Das ist der Stack Overflow. Das Programm stürzt sofort ab.

Merksatz: Ein Fehler, der auftritt, wenn der Aufrufstapel eines Programms seinen reservierten Speicherplatz überschreitet, meist durch endlose Rekursion.


Quick-Check

  1. Warum heißt die Webseite so?
    Weil es der häufigste und nervigste Fehler für Programmierer ist. Die Webseite "Stack Overflow" ist die Rettung für alle, die Fehler ("Bugs") haben.
  2. Ist der Stack Overflow gefährlich?
    Ja. Hacker können ihn provozieren ("Buffer Overflow" ist verwandt), um eigenen Schadcode in den Speicher zu schreiben und auszuführen.
  3. Kann ich den Stack vergrößern?
    Ja, per Compiler-Flag (-Xss in Java). Aber meistens ist das Problem dein Code (Endlosschleife), nicht der zu kleine Stack.