Einzelnen Beitrag anzeigen

Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#1

Array: C vs Delphi

  Alt 2. Dez 2009, 20:47
Hi ihr,

ich lerne in der FH C (nicht C++) und bin gerade dabei, ein Programm zu Lernzwecken zu übersetzen. Prinzipiell ist mir klar was das Programm macht, aber mit den internen Strukturen der beiden Compiler bin ich grad nicht so firm. Es geht um Folgendes:

Code:
unsigned char *data_buf;
data_buf ist ein Zeiger vom Typ "unsigned char". Das entspräche:

fDataBuffer : PByte; Nu' is es aber so, dass man auch Felder in C so darstellen kann. Und dann wäre das Äquivalent in Delphi:

fDataBuffer : Array of Byte; Ich vermute fast, dass es sich um ein Feld handelt, denn im Verlauf des Quelltextes taucht dieses Konstrukt auf:

Code:
ZeroMemory(data_buf, 28);
Somit wird ab der Adresse "data_buf" ein Block von 28 Byte mit Nullen aufgefüllt. Habe ich das so richtig interpretiert? Und wenn ja, brauche ich dann bei Delphi für das dynamische Array SetLength, oder übernimmt das ZeroMemory? Oder kann ich gar mit der allerersten Deklaration als PByte arbeiten?

P.S.: Bei data_buf handelt es sich um einen Parameter für eine Struktur einer Windows API-Funktion, Delphi-Referenz durchsuchenDeviceIOControl
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat