Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.562 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Pointer auf dynamisches Array

  Alt 14. Jan 2010, 09:40
Wie schon gesagt wurde ... wozu soll sowas gut sein?

Ein dynamisches Array ist schon ein Pointer.

Delphi-Quellcode:
var
  MyPointer : Pointer;

New(MyPointer)
...
SetLength(PMyRecArray(MyPointer)^, 10);
PMyRecArray(MyPointer)^[i]
...
// MyPointer := nil; // hier hatte Flips ein Speicherleck erzeugt
PMyRecArray(MyPointer)^ := nil; // so Richtig
// SetLength(PMyRecArray(MyPointer)^, 0); // oder so
Dispose(MyPointer);
oder
Delphi-Quellcode:
var
  MyPointer : PMyRecArray;

New(MyPointer)
...
SetLength(MyPointer^, 10);
MyPointer^[i]
...
// MyPointer := nil; // hier hatte Flips ein Speicherleck erzeugt
MyPointer^ := nil; // so Richtig
// SetLength(MyPointer^, 0); // oder so
Dispose(MyPointer);
wobei ich es maximal so machen würde
Delphi-Quellcode:
type TMyArray = array of irgendwas;
   PMyArray = ^TMyArray;

var MyArr : TMyArray;

var MyArrPointer : PMyArray;

MyArrPointer := @MyArr;

SetLength(MyArrPointer^, 10);
MyArrPointer^[i]
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat