Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Freepascal->Delphi: Pointer als Array?

  Alt 2. Okt 2012, 09:24
Für P[i]^ müsste das aber ein Pointertyp auf das Array und nicht das Element sein, oder?
Genau so sehe ich das auch. Was ich noch in petto hätte wäre die Anzahl der Elemente im Array, die wird der Procedure auch übergeben und wäre hier der Zielwert für die FOR-Schleife. Nur nochmal: Ich habe lediglich den Zeiger auf das erste Element im Array, welcher dereferenziert wieder ein Byte-Typ wäre und eben kein Array. Deshalb kann auch P^[I] eigentlich nicht funktionieren und bringt die selbe Compilermeldung "Array-Typ erforderlich".

Von der Sache her würde ich es so machen:
Delphi-Quellcode:
var
  T2: TPhysicalCharWidths;

begin
  SetLength(T2, AnzahlDerElemente);
  @T2[0]:= P;
end;
Aber so richtig schlüssig erscheint mir das auch nicht. So weiß zwar der Memory-Manager, wie viele Elemente T2 haben soll. Doch dann wird T2 auf eine andere Adresse umgebogen, was eigentlich zu einem Memleak führen müsste.
  Mit Zitat antworten Zitat