![]() |
Stack Überlauf
Hallo
Beim Starten und Ausführen des Programms kommt es zu einem Stack Überlauf. Anbei die Prozedur bei der bei Beginn der Überlauf zustande kommt:
Delphi-Quellcode:
procedure Pruefe_NachbarC(Anzahl_C:integer; var AnzahlSub,Anzahl_sk:integer; i,j,zaehler:integer; var maxcstart:integer;
var Anzahl_der_Cs_der_Kette,Index_laengste_C_Kette,Zaehler_der_gleichlangen_Ketten:integer; qhilf:integer); var Z,k :integer; begin Ich hoffe ihr könnt mir weiterhelfen. PS: Wie und warum kommt ein Stack Überlauf überhaupt zustande?? |
Re: Stack Überlauf
Der Überlauf kann durch mehrere Dinge ausgelöst werden.
Nur der Kopf der Funktion reicht nicht, du musst schon mehr Preisgeben. |
Re: Stack Überlauf
Zu 99% stammen Stack Überläufe daher, dass sich Methoden gegenseitig in einer Art Endlosschleife aufrufen. Dabei wird jeder Aufruf freilich auf den Callstack gepackt, und irgendwann läuft er halt über weil er nur eine endliche Größe hat.
|
Re: Stack Überlauf
Da du nur einen kleinen Teil der Prozedur gepostet hast, kann ich erstmal nur raten und sage: Endlosrekursion
Zitat:
|
Re: Stack Überlauf
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "r_kerber" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ist ein Delphi-Thema |
Re: Stack Überlauf
Schön deutlich wird das, sobald du mal einen Emulator schreibst, so wie ich das mache. Bei Chip8 beispielsweise wird der Stack ausschließlich für das Speichern der Rücksprungadressen benutzt, damit ich weiß, wohin ich muss, sobald eine Funktion zu Ende ist.
jedesmal wenn eine Funktion aufgerufen wird, speichert man die Adresse auf den Stack und setzt den Stackpointer ein Element weiter. Da man allerdings nicht unendlich Platz hat, stößt dieser irgendwann an seine grenzen, wenn zuviele Funktionen aufgerufen werden. Dann krachts. Kompliziertere hngegen verwenden den Stack außerdem für andere Sachen zusätzlich. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz