Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#4

Re: Pionter nach Setlength ungültig?

  Alt 7. Apr 2010, 17:40
Standardlösung: Lese die Pointer nach der Größenänderung neu aus.


Man kann es aber auch Mathematisch lösen
Delphi-Quellcode:
SetLength(intarr, 1);
intarr[0] := 10;
pint := @intarr[0];

WriteLn(IntToStr(PInteger(pint)^));

Dec(Cardinal(pint), Cardinal(intarr));
SetLength(intarr, Length(intarr) + 1);
Inc(Cardinal(pint), Cardinal(intarr));
// aka:
// palt := intarr;
// SetLength(intarr, Length(intarr) + 1);
// pint := pint - palt + intarr;

WriteLn(IntToStr(PInteger(pint)^));
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat