Чтение из невыровненного uint8_t, преобразованного в массив uint32_t, - не получение всех значений

Я пытаюсь привести массив uint8_t к массиву uint32_t. Тем не менее, когда я пытаюсь сделать это, я не могу получить доступ к каждые 4 байта подряд.

Допустим, у меня есть массив uint8_t с 8 байтами. Я хотел бы получить доступ к байту 2 -> 6 как к одному uint32_t.

Все они получают одинаковое значение*((uint32_t*)&uint8Array[0]), *((uint32_t*)&uint8Array[1]), *((uint32_t*)&uint8Array[2]), *((uint32_t*)&uint8Array[3])

В то время как*((uint32_t*)&uint8Array[4]) получает байты 4 -> 8, как и ожидалось.

Таким образом, кажется, что я не могу получить доступ к 4 последовательных байтов с любого адреса?

Есть ли способ, которым я могу это сделать?

Ответы на вопрос(3)

Ваш ответ на вопрос