ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
1021075 Топик полностью
3m (26.07.2020 11:42, просмотров: 507) ответил fk0 на Нет, это не баг. Потому, что это UB. Потому, что изначально взяли указатель на int и присвоили ему что-то, что не является указателем на int (об чём есть строчка в стандарте). Далее уже не важно. Более того, ещё раз повторю, в рамках СТАНДАРТНОГО C/C++, возникновение такого "не бага" -- в принципе невозможно. Оно появляется из-за "бажной" реализации упакованных структур. Ты прицепился к memcpy и считаешь, что мол баг. Но класс проблем же НАМНОГО ШИРЕ, чем только memcpy.
Вы заблудились в сферических абстрацкиях в ваккуме (возможно вместе с компиляторописателями). В данном случае мы работаем на процессоре M3 который УМЕЕТ делать unaligned access. Поэтому если компилятор знает что генерит код для M3 то никакого undefined behavior при невыровненном указателе на ЭТОЙ архитектуре нет - корректное исполнение обеспечит hardware.