AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stack Overflow - Dynamische Arrays

Ein Thema von roboter202 · begonnen am 3. Mai 2012 · letzter Beitrag vom 4. Mai 2012
Antwort Antwort
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

AW: Stack Overflow - Dynamische Arrays

  Alt 3. Mai 2012, 22:00
Stack overflow kommt daher, daß die Rekursion nicht abbricht, sondern sich irgendwo in einer Endlosschleife verfängt. Dieser Endlosigkeit setzt die Endlichkeit des Stack(speicher)s jedoch irgendwann ein Ende.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#2

AW: Stack Overflow - Dynamische Arrays

  Alt 3. Mai 2012, 22:53
Es währe auch zu einfach, wenn alle Programmierer wüßten was ein Debugger ist und wie man den verwendet.
Und ja, selbst Delphi 7 kennt einen Stack-Trace (Aufruf-Stack).
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Stack Overflow - Dynamische Arrays

  Alt 4. Mai 2012, 00:34
Ich hab auch irgendwann ein Labyrinth geprogt und es auch rekursiv berechnet. Ob ich es 20x20 oder 500x500 mache, es funktioniert ohne Fehlermeldung. Die Größe dürfte also nicht das Problem sein. Ich tippe drauf, dass es irgendwo eine lost in space Geschichte wird.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Stack Overflow - Dynamische Arrays

  Alt 4. Mai 2012, 06:02
Rekursiv <> Rekursiv.
Hier wird für jeden Nachbarn die Routine rekursiv aufgerufen, was bei einem 100x100 Feld entsprechend viele Aufrufe bedeuten könnte.

Da es sich um eine Rechtsrekursion handelt, kann diese bedenkenlos in eine Iteration umgewandelt werden, ohne Gehirnwindungskrämpfe zu bekommen.
  Mit Zitat antworten Zitat
roboter202

Registriert seit: 6. Mär 2011
98 Beiträge
 
Delphi 6 Professional
 
#5

AW: Stack Overflow - Dynamische Arrays

  Alt 4. Mai 2012, 13:05
Stack overflow kommt daher, daß die Rekursion nicht abbricht, sondern sich irgendwo in einer Endlosschleife verfängt. Dieser Endlosigkeit setzt die Endlichkeit des Stack(speicher)s jedoch irgendwann ein Ende.
Nein das stimmt nicht irgendwann gibt es keine Zellen ohne Nachbarn mehr

Code:
Rekursiv <> Rekursiv.
Hier wird für jeden Nachbarn die Routine rekursiv aufgerufen, was bei einem 100x100 Feld entsprechend viele Aufrufe bedeuten könnte.

Da es sich um eine Rechtsrekursion handelt, kann diese bedenkenlos in eine Iteration umgewandelt werden, ohne Gehirnwindungskrämpfe zu bekommen.
Stimmt wenn ich einen while-Schleife nehme und den Code etwas modifiziere dann müsst das auch gehen. Da bin heute morgen auch drauf gekommen.

DANKE!!!
Christian
i := 0 ; While i = 0 do beep ;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 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