Integer mit char zeiger speicern
-
Hallo,
mit dem Zeiger ptr durchlaufe ich einen buffer. Eine Information in diesem buffer ist ein Integer - wie kann ich diesen Integer in ptr2 speichern?
//... unsigned char *ptr; unsigned int *ptr2; ptr2 = *(unsigned int *)ptr;
Ist es sinnvoller mit einem void ptr zu arbeiten? In dem Buffer befinden sich sowohl char Werte, die ich speichern möchte, als auch Integers.
mfg
Hans im Glück
-
Die Schreibweise wäre so:
ptr2 = (unsigned int *)ptr;Aber damit zeigt aller Wahrscheinlichkeit nach ptr2 auf 3 Byte Datenmüll.
Diese Vorgehensweise ist nicht empfehlenswert.Besser ist, den Puffer zu strukturieren:
Speicherspar-Variante:
#pragma pack(1) struct Buf { int i; char c; }; #pragma pack()
Die schnellere Variante:
struct Buf { int i; char c; char dummy[3]; };
MfG,
MFG