Daten von Feld in Struktur kopieren

Gast #4537929
Lesenswert?
• ▲
▼
Hallo Zusammen ich habe ein Problem beim kopieren von Werten aus einem 
Array in eine Struktur. Die Bilder dazu findet Ihr im Anhang.

ich möchte die Werte von "Msg.Data[]" in die Strktur 
"MTi_G700_with_GPS2" kopieren. Leider stimmen nach dem kopieren die 
Werte im Speicher (Memory 4 siehe Abbildung) nicht mit der Anzeige im 
Watch Fenster überein.

Msg.Data[3] = 0x0a wurde anscheiend richtig in den Speicher kopiert. 
Somit sollte das LSB von MTi_G700_with_GPS2.UCTTime_ns = 0x0a sein. Das 
ist leider nicht der Fall. Wo könnte der Fehler liegen. Warum wird in 
MTi_G700_with_GPS2.UCTTime_ns der um ein Byte nach Rechts verschobene 
Wert angezeigt?

Danke für eure Hilfe.
Viele Grüße
Andre
Angehängte Dateien:
#4537944
Lesenswert?
• ▲
▼
Dein Compiler padded vermutlich die Struct.
Oft ist es so, dass 32-bit Werte auf Speicheradressen liegen müssen, die 
ein vielfaches von 4 darstellen.
Wenn du in deiner Struct jetzt ein 8-bit und ein 16-bit Wert hast, fehlt 
noch 1 byte bis zur nächsten 32-bit-"fähigen"-Speicheradresse.
Und genau auf dieser padding position scheinen deine 0x0a zu landen.
Du kannst dir die Struktur ja mal im Memory-Dump angucken.

PS: Programmcode kann auch als .txt gepostet werden ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren