Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Stack Überlauf (https://www.delphipraxis.net/123680-stack-ueberlauf.html)

nahpets 7. Nov 2008 10:19

Re: Stack Überlauf
 
Hallo,

habe mir mal den Quelltext genommen und das Ganze ausprobiert. Bei Eingaben > 8 kommt ein Fehler bei der Bereichsprüfung, ansonsten funktioniert der vorhandene Quelltext ohne Stacküberlauf oder sonstige Probleme.
Ein Fehlerkandidat könnte dann nur noch die Prozedur Berechne sein.
Was passiert darin?

alzaimar 7. Nov 2008 11:30

Re: Stack Überlauf
 
Dessenungeachtet ist es kein guter Stil, wenn ein Ereignis in einem Key-Down-Event aufgerufen wird. Abhilfe: Schmeiss ein TButton auf dein Formular, setze im Objektinspektor die Eigenschaft 'Default' auf TRUE (dann wird der Button beim ENTER gedrückt) und verfrachte zum Schluss die Logik in das ButtonClick-Ereignis.
Delphi-Quellcode:
Procedure TForm1.Button1Click (Sender : TObject);
Begin
  eingabe;
  If (zahler1 = a+2)Then  
    berechne;
  zahler1:= zahler1+1;
End;
Nur löst das ja nicht das Stack-Problem.

Uwe Raabe 7. Nov 2008 14:24

Re: Stack Überlauf
 
Delphi-Quellcode:
     
n:= 1;
For i:=1 to a Do
begin
    n:= n*a;
end;
setLength(El,a);
setLength(Mo,n);
setLength(Re,n,a);
setLength(Vo,a);
Nach der Schleife entspricht n = a^a, was bei a=8 schon 2^24 = 16777216 entspricht. Vielleicht sollte man in diese Richtung mal weiter forschen.

Bei Kombinatorik muss man etwas aufpassen was den benötigten Speicherplatz betrifft.

nahpets 7. Nov 2008 14:55

Re: Stack Überlauf
 
Hallo,

a > 8 führt zwar zu Fehlern, aber nicht zum Stacküberlauf. Und bei a = 8 braucht's ja "nur" ca. 1 GB Speicher.

Uwe Raabe 7. Nov 2008 16:07

Re: Stack Überlauf
 
Leena: Vielleicht kannst du mal die komplette Unit von TForm2 posten. Sieht aus, als kämen wir so nicht weiter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:11 Uhr.
Seite 2 von 2     12   

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