Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Ich und die Pointer... die nicht so wollen wie ich

  Alt 20. Sep 2007, 19:15
Delphi-Quellcode:
type
  TByteArray = array of Byte;
  PByteArray = ^TByteArray;

var
  B: PByteArray;

begin
  new(b);

  setlength(B^, 100 + 1);

  B^[10] := 255;

  writeln(B^[10]);

  dispose(B);
  readln;
end.
Nein, das stimmt so nicht. Lass den PByteArray-Kram weg. SetLength regelt die Alloziierung fuer das TByteArray. Die Dealloziierung aller "array of"-Variablen geschieht heimlich und automatisch.
Delphi-Quellcode:
type
  TByteArray = array of Byte;
var
  B: TByteArray;
begin
  // Hier wird B von Delphi heimlich auf nil initialisiert
  // SetLength alloziiert 101 Elemente (Bytes).
  setlength(B, 100 + 1);

  B[10] := 255;

  writeln(B[10]);
  readln;
  // Hier gibt Delphi das alloziierte array heimlich frei
end.
  Mit Zitat antworten Zitat