Allokation in Oberon

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

TYPE
   BookRec =
      RECORD
         author, title: ARRAY 80 OF CHAR;
         year: INTEGER;
      END;
   Book = POINTER TO BookRec;

PROCEDURE CreateBook(VAR book: Book;
                     author, title: ARRAY OF CHAR;
                     year: INTEGER);
BEGIN
   NEW(book);
   COPY(author, book.author);
   COPY(title, book.title);
   book.year := year;
END CreateBook;

*Mit NEW wird eine Datenfläche allokiert und dem angegebenen Zeiger wird die Adresse auf die neu angelegte Datenfläche zugewiesen.
 
*Auf den Datentyp hinter dem Zeiger kann genauso zugegriffen werden als wäre die Zeigervariable von dem Typ, auf den sie verweist.
 
*Prozeduren, die einen Record allokieren, initialisieren und einen Zeiger darauf zurückliefern, nennen sich Konstruktoren.
 
*Wird versucht, auf Daten hinter einem Zeiger zuzugreifen, der den Wert NIL hat, so führt dies zu einem Laufzeitfehler.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999