Gast
#2901863
Guten Abend zusammen
Ich habe einen Source Code, der in C wunderbar funktionierte und nun
auch mit einem C++ Compiler funktionieren soll. So weit so gut... nun
hab ich das Problem, dass bei folgender Zusweisung
curr_frame->locals[i] = vm_args[i];
im Memory fälschlicherweise jeweils 1 Byte des vorherigen class_ptr mit
1 Byte Wert von vm_args überschrieben wird. vm_args ist natürlich
ebenfalls vom Typ value_t. Woran könnte dies liegen?
typedef PACKED struct frame_T frame_t;
typedef PACKED union value_T value_t;
struct frame_T
{
class_t *class_ptr;
value_t locals[1];
};
union value_T
{
int32 i;
float32 f;
uint32 val;
};
Die Struktur sowie die Union wurde mit #pragma pack(2) versehen, da
diese typen mit dem alignment in einem file übereinstimmen müssen (und
dies soweit auch tun). Ich benutze IAR als Compiler, die CPU ist ein
LPC23xx von NXP.
Ich hoffe, die Angaben reichen soweit mal... Danke für eure Hilfe.
Gruss
Fabian