Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

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

AW: Freepascal->Delphi: Pointer als Array?

  Alt 2. Okt 2012, 10:38
Habe ich richtig vertstanden dass Du einen Zeiger auf das erste Element bekommst?
Öhm, ja
Dann sollte folgendes gehen
Delphi-Quellcode:
type
  TPhysicalCharWidth = Byte;
  TPhysicalCharWidths = Array of TPhysicalCharWidth;
  PPhysicalCharWidth = ^TPhysicalCharWidth;



procedure Proz(p:Pointer;len:Integer);
var

 i:Integer;
begin
   for I := 0 to len - 1 do Showmessage(IntToStr(TPhysicalCharWidths(p)[i]))

end;

procedure TForm3.Button1Click(Sender: TObject);
var
  I: Integer;
  P: PPhysicalCharWidth;
  T: TPhysicalCharWidths;

begin
   SetLength(t,10);
   for i := Low(t) to High(t) do t[i] := i + 17;
   Proz(@T[0],Length(t));
end;
Und wo wird da jetzt der Zeiger auf das erste Element verwendet? Du erstellst doch nur ein neues leeres Array und holst dir nicht das bestehende mit dem Zeiger...

Hach, ist wieder schwöööör zu erklären. P ist ein Zeiger auf das erste Element. Den generiere ich nicht selbst sondern der kommt von außen in die Prozedur. Gucks du hier in Zeile 810..854, Fehler in Zeile 819.
  Mit Zitat antworten Zitat