ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 апреля
1021127 Топик полностью
LightElf (26.07.2020 16:22, просмотров: 499) ответил fk0 на Так для типа int -- всё корректно. Некорректно для того типа, что лежит в упакованной структуре. Это не int, потому, что int не может лежать на невыравненном адресе. Это другой тип. Но в структуре записано что int, что и приводит к краху.
Компилятор знает, что в общем случае void* нельзя приводить к int*. Компилятор либо знает, что тип лежит в упакованной структуре и должен генерировать правильный код. Либо компилятор не знает, где лежит данный конкретный int и тогда должен исходить из худшего (раз уж он поддерживает такие конструкции). А вот это "здесь читаем, здесь не читаем, а здесь - рыбу заворачивали" есть косяк и бага. 
Не надо делать мне как лучше, оставьте мне как хорошо