Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#27

AW: 2 Arrays vergleichen\sortieren

  Alt 23. Nov 2017, 15:58
Also warum funktioniert es unter C++ und nicht mit Delphi.
Es funktioniert bei beiden. Delphi Syntax ist anders und in Delphi ist (standardmäßig) Pointerarithmetik nicht erlaubt weswegen du die Berechnung der Adresse als Integer machen musst und das Ergebnis dann auf Pointer castest.
MoveMemory ist wie gesagt eine Windows API und die KANN in Delphi nicht anders funktionieren als in C++.

Code:
MoveMemory(&buffer[0] + K * sizeof(short) , &A2[K], sizeof(short));
=
MoveMemory(Pointer(NativeUInt(@buffer[0]) + K * sizeof(Short)), @A2[K], sizeof(Short));

Edit: Soviel zu meinem Punkt "Der C++ Code ist unnötig kompliziert" (zumindest auf Delphi übertragen):
MoveMemory(@buffer[K * sizeof(Short)], @A2[K], sizeof(Short));
geht auch.

Es hilft halt, wenn man den Code den man überträgt auch versteht
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (23. Nov 2017 um 16:02 Uhr)
  Mit Zitat antworten Zitat