Rekursion: Stapelfehler Nr. 28

Ich habe eine VB6-Anwendung mit intensiven Rekursions-Aufrufen. Nach etwa 9000 Selbst-Aufrufen stürzt das PRG rettungslos ab. Was muß ich einbauen,

in NT 4.0
in Win98 SE,

um dem Programm genügend Stapelspeicher mitzugeben?

Danke für eure Mühe,
Jonathan

Hallo Jonathan

Ich habe eine VB6-Anwendung mit intensiven
Rekursions-Aufrufen. Nach etwa 9000 Selbst-Aufrufen stürzt das
PRG rettungslos ab. Was muß ich einbauen,

in NT 4.0
in Win98 SE,

um dem Programm genügend Stapelspeicher mitzugeben?

Die Beschreibung in deiner ViKa stimmt schon …

Bei jedem Aufruf einer Soubroutine muss auf dem Stack abgelegt werden:

  1. Die Rücksprung Adresse -> 4 Byte
  2. Der FramePointer (BP) -> 4 Byte
  3. Benötigte Register -> ? * 4 Byte
  4. Lokale Variablen -> ? Byte
  5. Übergebene Parameter -> ? Byte

Somit wächst dein Stack sehr schnell … und dann knallt’s !!!

Die einzige vernünftige Lösung ist das ganze so zu zu schreiben, dass du keine Rekursion mehr brauchst. Jeder rekursive Code kann durch eine entsprechende SChleife ersetzt werden.

MfG Peter(TOO)