Цитата(inventor @ Oct 31 2014, 12:10)

на_вскидку: невыровненная структура - вероятно в эксепшен вылетает
Автор пишет, что никаких специальных мер по нарушению выравнивания не предпринимал, читайте внимательнее.
Цитата(inventor @ Oct 31 2014, 12:10)

смотрите чтобы все поля по 32 бита были.
А это еще зачем? А вложенная стрктура тоже полем является, она тоже по 32 бита должна быть?
Цитата(inventor @ Oct 31 2014, 12:10)

ну а если нет такой возможности - делайте юнион на свою структуру и копируйте с помощью memcpy по-байтно
1) у memcpy параметр имеет тип void *, согласно правилам неявного приведения типов указатель на структуру будет приведен к этому типу неявно. Никакой union не нужен.
2) Стандарт языка гарантирует, что структура должна копироваться без всяких плясок с бубном. Вне зависимости от размера, типа и количества своих членов. Даже если структура объявлена с другим выравниванием, компилятор об этом знает и обязан выполнять копирование корректно. Проблема с выравниванием может возникнуть только при доступе через указатель, если программист явным приведением типов сознательно нарушил правила выравнивания.