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