Seite 1 von 1

Endlose Rekursion

Verfasst: 05.08.2019 09:18
von Bisonte
Hallo. Ich stolpere gerade über eine Compiler Meldung...

Code: Alles auswählen

Structure mit_Fehler
  a.i
  b.i
  c.mit_Fehler
EndStructure
ergibt Compiler Fehler : "endless recursivity"... ok klingt logisch, dachte ich, bis ich aus versehen :

Code: Alles auswählen

Structure ohne_Fehler
  a.i
  b.i
  *c.ohne_Fehler
EndStructure
geschrieben hatte.... was mir jetzt nicht mehr so logisch erscheint.
Das sollte doch eigentlich auch eine "endless recursivity" Meldung geben ...
oder liege ich da falsch ?

Momentan bin ich mit der 5.71Beta2 x64 auf Windows x64 dabei.

Re: Endlose Rekursion

Verfasst: 05.08.2019 09:41
von STARGÅTE
Im ersten Code wird das Feld "c" mit der Struktur "mit_Fehler" immer wieder rekursiv hinzugefügt.
Hier ist die Meldung also richtig.

Im zweiten Code wird das Feld "*c" nur als Zeiger (Pointer, also eine Integer) einmal hinzugefügt.
Der Speicher für die Struktur "ohne_Fehler" wird also nicht bereit gestellt.
"*c" wäre zu beginn 0, so dass du auch nicht auf *c\a zugreifen könntest, ohne *c vorher zu befüllen.

Re: Endlose Rekursion

Verfasst: 05.08.2019 14:52
von Josh
Eine Diskussion in dieser Richtung hat es erst mal im englischen Forum gegeben:

https://www.purebasic.fr/english/viewto ... =structure

Re: Endlose Rekursion

Verfasst: 05.08.2019 21:43
von Bisonte
Ok. Also doch logisch ;)
Danke