Pointer/de

From Free Pascal wiki
Revision as of 16:29, 9 September 2012 by Olaf (talk | contribs)
Jump to navigationJump to search

Deutsch (de) English (en) suomi (fi) français (fr) русский (ru)


Eigenschaften eines Pointers (Zeigers):

  • Ein Pointer ist ein Zeiger (eine Referenz) auf eine Speicherstelle.
  • Ein Pointer ist ein ganzzahliger Datentyp zum speichern einer Arbeisspeicheradresse.
  • Ein Pointer verweist auf die Anfangsadresse einer Variablen oder eines Objektes.
  • Die Größe des Pointers liegt zwischen Longint oder Int64 .
  • Die genaue Größe des Zeigers ist abhängig vom Zielbetriebssystem und dem Zielprozessor.


Beispiel für die Verwendung eines Pointers an einem einfachen Datentyp:

var
  a, b: Integer;  // a und b sind Integer-Variablen.
  p: ^Integer;    // p ist ein Pointer, der die Speicheradresse einer Variablen vom Datentyp Integer aufnehmen kann.
begin
  a := 500;       // Die Variable a vom Datentyp Integer erhält einen gültigen Wert zugewiesen.
  p := @a;        // Die Variable p vom Datentyp Pointer erhält jetzt die Adresse der Variablen a zugewiesen.
  b := p^;        // Die Variable b vom Datentyp Integer holt sich über die Adresse im Pointer p den Wert aus der Variablen a.
  p := nil;       // Die Variable p vom Datentyp Pointer enthält jetzt keine Adresse mehr (die Variable p zeigt auf nichts).
                  // Der Pointer p kann mit einer neuen Speicheradresse versehen werden.
end;


Beispiel für die Verwendung eines Pointers an einem Record:

type
   TNewRecord = record
      Wert1: ShortString;
      Wert2: ShortString;
      Wert3: ShortString;
   end;
var
   p: ^TNewRecord;
   i, j: integer;
begin
   New(p);                      // erstellt einen Pointer und ein Object vom Typ TNewRecord.
   p^.Wert1 := "Test";          // befüllt über den Pointer das Datenfeld des Objektes.
   p^.Wert2 := "TestTest";      // befüllt über den Pointer das Datenfeld des Objektes.
   p^.Wert3 := "TestTestTest";  // befüllt über den Pointer das Datenfeld des Objektes.
   Dispose(p);                  // Gibt den Pointer und damit das Objekt frei.
                                // Damit sind alle Datenfelder und Daten des Pointers p gelöscht.
end;



--Olaf 14:26, 9 September 2012 (UTC)