Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Pionter nach Setlength ungültig?

  Alt 7. Apr 2010, 18: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)^));
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat