[Gelöst]Rekursive Structure

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

[Gelöst]Rekursive Structure

Beitrag von Mok »

Hallo.
Während man in C ein Stack-Beispiel wie folgt lösen könnte,

Code: Alles auswählen

struct Stack
{
  struct Stack next;
  void *item;
}
bekommt man bei folgendem PB-Code einen Fehler:

Code: Alles auswählen

Structure Stack
  nxt.Stack
  *item.i
EndStructure
Irgendwie logisch, aber dann müsste das C-Programm doch auch grausam abschmieren...

Grüße, Mok
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Rekursive Structure

Beitrag von Nino »

Mok hat geschrieben:bekommt man bei folgendem PB-Code einen Fehler:

Code: Alles auswählen

Structure Stack
  nxt.Stack
  *item.i
EndStructure
Irgendwie logisch, aber dann müsste das C-Programm doch auch grausam abschmieren...
Du kannst in PB -- zumindest mit der aktuellen Version 4.50 -- in der Structure einen Zeiger auf die selbe Structure benutzen:

Code: Alles auswählen

Structure Stack
  *nxt.Stack
  *item.i
EndStructure
Grüße, Nino
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Re: Rekursive Structure

Beitrag von freak »

Dein C-Beispiel funktioniert nicht:
test.c(5) : error C2079: 'next' uses undefined struct 'Stack'
Sowas geht nur mit Pointern, und das kann PB auch.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Rekursive Structure

Beitrag von Mok »

Fehler meinerseits :( Bitte löschen.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Antworten