Dla uC ARM7 i gcc. Jest np. cos takiego:
typedef struct{ unsigned short a; unsigned short b; }struktura;
struktura * st;
char * buff = (char*)malloc(100); memcpy(buff,"to sa jakies dane",13); st = (struktura*)(buff+13); st->a = 0x0006;
Problem polega na tym, ¿e za ka¿dym razem, gdy struktura jest przesunieta w buforze o nieparzysta liczbe bajtow starszy bajt zmiennej a struktury zachodzi na ostatni bajt danych wczesniej zapisanych. Nie wiem czemu tak jest, bo program po skompilowaniu wyglada dobrze, st->a wypada tam gdzie powinno, ale procesor wykonuje to tak, ¿e zapisuje do pamieci o jeden bajt wyzej. Moze wie ktos z czego to wynika i jak problem rozwiazac bo ja juz nie mam pomyslow. Napisalem dokladnie to samo w MS Visual C++ na PC i tam jest ok.