Выравнивание в структурах и вообще - выравнивание.

При выделении памяти структуре - напр. два байта .
Компилятор выделяет минимум четыре байта - так как в 32- разрядной архитектуре процессор "прыгает" сразу же на четыре байта - 32 бита.
Сначала для символа выделяется буфер/

следует использовать какие-то макросы- короче ничего не понятно.....

Смещение поля в структуре определяется макросом offsetof всегда используйте этот макрос не опираясь на ваши знания о выравнивании.

настройки компиляции оп упаковке должны совпадать как с настройкам исполняемого файла так и для всех динамических и статических библиотек.