![]() |
Array of bytes umkehren - richtig so?
Hallo.
nur um sicherzustellen, dass mein Code richtig ist, habe ich eine kurze Frage. Gegeben ist eine Datenstruktur vom Typ ![]() ![]() Zitat:
Das Umkehren mache ich derzeit so:
Delphi-Quellcode:
Funktion ReverseBytes ist
var
CertContext: PCCERT_CONTEXT; Lserial: LPByte; ... procedure ReverseBytes(Source, Dest: Pointer; Size: NativeUInt); begin Dest := PByte( NativeUInt(Dest) + Size - 1); while Size > 0 do begin PByte(Dest)^:= PByte(Source)^; Inc(PByte(Source)); Dec(PByte(Dest)); Dec(Size); end; end; ... GetMem(Lserial, CertContext.pCertInfo.SerialNumber.cbData); try ReverseBytes(CertContext.pCertInfo.SerialNumber.pbData, Lserial, CertContext.pCertInfo.SerialNumber.cbData); ... finally FreeMem(Lserial); end; ![]() Ist das korrekt so? Grüße Dalai |
AW: Array of bytes umkehren - richtig so?
![]() |
AW: Array of bytes umkehren - richtig so?
Zitat:
Grüße Klaus |
AW: Array of bytes umkehren - richtig so?
Oha, richtig :oops:
|
AW: Array of bytes umkehren - richtig so?
Zitat:
Delphi-Quellcode:
Dest := PByte(Dest) + Size - 1;
Und ich würde die Parameter gleich als PByte deklarieren, dann ist der Typecast auch nicht mehr notwendig. |
AW: Array of bytes umkehren - richtig so?
Zitat:
|
AW: Array of bytes umkehren - richtig so?
Zitat:
Zitat:
Primär geht's mir um die Frage der Korrektheit, also ausreichende Speicherreservierung, kein Lesen über die Grenzen, keine Speicherlecks und sowas, da ich bisher nie ein Array of bytes umkehren musste. Optimierungen sind sekundär. Aber wenn ich die Antworten richtig deute, liege ich wohl nicht verkehrt. Dankeschön an alle :). Grüße Dalai |
AW: Array of bytes umkehren - richtig so?
Zitat:
Delphi-Quellcode:
nicht gesetzt wurde. Lässt sich aber ändern...
{$POINTERMATH ON}
Allerdings ist das bei einem Byte-Array gleichbedeutend mit:
Delphi-Quellcode:
Da hier der index und der offset identisch sind.
Dest := PByte(Dest + Size - 1);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz