linux-l: Free Pascal Compiler
Polet & SEIBERTZ
im-Zweifelsfall at t-online.de
Do Apr 22 11:14:07 CEST 1999
> > > > > type tpointer=^tzeile;
> > > > > tzeile=RECORD
> > > > > inhalt:string[80];
> > > > > next:tpointer;
> > > > > end;
> > Gibt es einen guten Grund nicht
> >
> > TYPE tzeile = RECORD
> > inhalt : string[80];
> > next : ^tzeile
> > END;
> > zu schreiben;
>
> Ja, ich möchte eine Kette dynamischer Variablen schreiben,
> bei der ich zum Anfang zurückkehren kann und beliebig
> wieder der Kette folgen kann. Das geht aber nur mit einem
> zusätzlichen Typ tpointer, der mit tzeile verknüpft ist,
Ja -ja, das heißt jedoch nur, daß DU einen Kopfzeiger brauchst, am
besten (nur vorschlagsweise!) einen untypisierten.
> ein Aufruf zaktuell:=zaktuell^.next hat sonst einen
> Fehler namens "Illegal qualifier" zufolge (sowohl unter
> Borland Pascal, als auch unter fpk).
Ich hab's jetzt nicht mehr im Kopf, war's:
VAR zaktuell : tzeile;
?
Wenn das so ist hat der Parser nur recht! zaktuell ist kein Zeiger
und dementsprechend auch nicht als solcher zu referenzieren.
In dem RECORD tzeile (welche Version Du auch vorziehst) ist nur(!)
.next ein Zeiger, daß heiß auch nur next ist als Adresse einer
Variablen (nämlich zaktuell (indirekt)) oder als Platzhalter für eine
Adresse ansprechbar (direkt).
next ist eine Adreßangabe
next^ ist Zeiger auf auf eine komplexe Datenstruktur (, die auch
wieder Zeiger enthält), d.h. hier wird die Adresse benutzt.
Schreib mir doch bitte noch auf, ob Dein neuer Compiler die von mir
angebotene TYPE-Deklaration versteht (denn Sie ist nicht indirekt
rekursiv, sondern schön direkt, wie es sich gehören sollte!)
Mehr Informationen über die Mailingliste linux-l