Как перенести данные из массива другого типа?
Не являюсь программистом, но работаю в смежной специальности, поэтому учу язык (Си) в ходе решения рабочих задач. Наткнулся на проблему. Имеется массив:
uint16_t buffer[100];
Однако данные в нем лежат криво. Каждый элемент массива, как видим, это 2 байта. Однако реально данные "смещены" на 1 байт. Например, младший байт элемента buffer[0] - это старший байт двухбайтного числа, а его младший байт - это старший байт элемента buffer[1] и так далее.
Вопрос: как можно оптимально получить данные в нормальном виде, не прибегая к циклам с перебором всех значений массива и сдвигом бит?
Думал может получится что-то сделать с помощью memcpy(), но ничего не вышло.