Einen Puffer mit unterschiedlichen Typen (long, int, short, char) fülle ich u. a. wie folgt: *(unsigned short*)(&puffer[40]) = value ; short 2 Bytes value 4 Bytes puffer unsigned char Ist diese Konstruktion sicher oder gibt es etwas besseres?
Ist unsicher. Du kopierst ein long an eine short * Position. Wenn der Zeiger erhöht würde (hier nicht der Fal), hättest du einen sicheren Fehler. Bei manchen Prozessoren können short oder long nur an geraden Byteadressen beginnen. &puffer[40] kann eine ungerade Adresse sein.
Hallo Karlheinz, schau mal unter dem Schlagwort "union" nach, da findest Du was besseres. Jürgen
Vielen Dank für eure Antworten. @Stefan Bei welchen Prozessoren ist dies der Fall? ARM7? @ Jürgen Die "union" sieht gut aus. Werde mich sogleich mit ihnen beschäftigen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.