Einzelnen Beitrag anzeigen

C0lumb0

Registriert seit: 8. Mär 2006
7 Beiträge
 
#1

Stack Überlauf bei Rekursion

  Alt 27. Sep 2006, 19:25
Hallo Delphifreunde,
ich schreibe gerade ein Programm, wo ich eine sehr tiefe Rekursion verwende (über 100000!!) Das Programm gibt mir dann einen Stack Überlauf an und kann die Rekusrsion deshalb nicht ausführen.
Wie kann man das verhindern oder wie kann man den Stack erhöhen (mein Arbeitsspeicher von 1GB dürfte doch ausreichen). Ich weiß ja dass es keine Endlosrekursion ist sondern zum Ergebnis führt somit muss es ja nicht abgebrochen werden!

Hier mein Code:
Delphi-Quellcode:
procedure Tform1.kaufen;
begin
  while not allesgekauft do
    begin
      inc(monat);
      kontostand:=budget+kontostand;
      for i:=elemente-1 downto 0 do
        begin
          if A[i]<=kontostand then
           begin
            kaufe(i);
           end;
        end;
        kontostand:=kontostand2;
        kontostand2:=0;
      if Kontostand>=wertelemente then
       begin
         allesgekauft:=true;
         edit3.Text:=inttostr(monat);
       end;
      kaufen;
    end;
end;

procedure TAufgabe1.kaufe(Enummer:integer);
begin
  Kontostand:=Kontostand-A[Enummer];
  Kontostand2:=kontostand2+A[Enummer];
end;
MfG Andre

ich hoffe ihr könnt mir helfen..
  Mit Zitat antworten Zitat