Zitat Zitat von TobiasBlome
Allgemein oder bei Programmierfehlern?
Was meinst du damit?

Nachdem eine Sub ausgeführt worden ist, wird das Programm mit dem Befehl nach dem Gosub fortgesetzt. Die Speicherstelle des Befehls wird dazu im Stack abgelegt. Dann werden die Befehle in der Sub ausgeführt. Kommt jetzt das nächste Gosub, wird wieder die Rücksprungadresse in den Stack gelegt und zwar in die nächste Zelle. Wird dann ein Return Befehl ausgeführt, springt das Programm an die letzte gespeicherte Stelle zurück und löscht diese vom Stack. Wenn also zu einem Gosub kein Return gefunden wird, bleibt die entsprechende Rücksprungadresse im Stack liegen. Da der Stack nur eine begrenzte Größe hat, läuft er irgendwann voll. Die nächste Adresse wird dann in einen Bereich geschrieben, der nicht dafür reserviert ist und es passieren meistens vollkommen ungewollte und nicht nachvollziehbare Aktionen.

Gruß

Rolf