Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#33

AW: Fehler "access violation" - keine Ahnung, warum...

  Alt 15. Aug 2012, 15:28
Zunächst einmal scheint hier ein Mißverständnis über Zeiger/Pointer vor zu liegen.
Ein Zeiger/Pointer enthält NIL oder eine Adresse, die auf einen Speicherbereich zeigt. Der Wert, den der Zeiger enthält, ist vollkommen uninteressant. Von Interesse ist nur der Speicherbereich auf den der Zeiger zeigt. Wenn hier ein paarmal vom Inhalt des Zeigers die Rede war hoffe ich, daß dies eine sprachliche Ungenauigkeit war.
Wie DeddyH schon ausgeführt hat ist
Delphi-Quellcode:

zeiger : pointer;

...

new(zeiger);
vornehm ausgedrückt, Blödsinn. new(zeiger); ist nur dann sinnvoll, wenn zeiger als Pointer auf irgendetwas definiert ist. z.B.
Delphi-Quellcode:
tmyrec=record
         wert:integer;
         nix :byte;
       end;
 
zeiger:^tmyrec;
pint :înteger;

...

new(zeiger);
new(pint);
Dann beginnt die Record Definition mit zwei Byte-Werten.
Das könnte nach einem packed record verlangen, muß aber nicht. Wäre u.U. aber auch eine Erklärung für das Verhalten.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat