Was "stack overflow" bedeutet und was dagegen hilft
Wörtlich genommen ist "stack" der Sammelbegriff für eine Datenstruktur in einem Keller- oder Stapelspeicher, die von den meisten Mikroprozessoren in der Hardware direkt unterstützt wird.
Der Begriff "overflow" deutet schon an, dass man es hier mit einem Ausnahmezustand zu tun hat. "Überflutung" heißt: Irgendwo ist es zu eng für einen Strom, hier für einen Datenstrom.
- Der "call stack" (benötigter Speicher) wird von modernen Betriebssystemen automatisch den Erfordernissen angepasst. Er beruht auf vielen Faktoren, wie Programmiersprache, Maschinenarchitektur, Multithreading oder verfügbare Speicherkapazität.
- Bei älteren Betriebssystemen kann es sein, dass der Benutzer (mit Administratorrechten) die Speichergröße selbst festlegen muss. Sie beeinflusst maßgeblich die Faktoren "Ausführen, Kontrolle, Laufzeit und Maschine" bei der Software.
- Beim Programmstart wird oft die Größe des "call stack" auf einen bestimmten Wert begrenzt. Übersteigt nun der Speicherbedarf die verfügbare Speicherkapazität, kommt es zum "stack overflow", das Programm stürzt ab.
- Für Benutzer mit Programmierkenntnissen kann die Lösung des Problems so heißen: void "calloc" (sizet num,sizet size) oder void "malloc" (size_t size). Damit passt das System die Speichergröße automatisch den Betriebszuständen an, ein "stack overflow" sollte nicht mehr auftreten.
- Ein "Otto Normalverbraucher" sollte folgende Einstellung vornehmen: Systemsteuerung / System / Erweitert / Einstellungen / (oberes Fenster) Erweitert / ändern = benutzerdefiniert. Dort kann jetzt die Speichergröße manuell eingestellt werden. Eine Verdoppelung sowohl für den Start als auch für die maximale Größe ist angeraten.
- Bestätigen Sie die Änderungen zweimal mit "ok", danach starten Sie den PC neu. Sollte sich der Fehler damit nicht beheben lassen, ist professionelle Hilfe angesagt.
Weiterlesen:
Wie hilfreich finden Sie diesen Artikel?