Как уже упоминалось, вы не можете конвертировать uint8_t *
в uint32_t *
из-за строгого правила наложения имен, вы можете конвертировать uint32_t *
в unsigned char *
, хотя:
#include <iostream>
int main(){
uint32_t test[1024/4] = {}; // initialize it!
auto memory = reinterpret_cast<unsigned char *>( test );
memory[0] = 1;
memory[1] = 1;
std::cout << test[0] << std::endl;
}
это не переносимый код из-за Endianness , но, по крайней мере, не имеет UB.