uint32_t指向与uint8_t指针相同的位置

Cro*_*oxa 2 c++ pointers type-conversion

#include <iostream>

int main(){
    uint8_t memory[1024];
    memory[0] = 1;
    memory[1] = 1;
    uint32_t *test = memory;
    //is it possible to get a value for *test that would be in this example 257?
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个与uint8_t指针相同的地址的uin32_t指针.这可能不使用新的(地址)吗?我不想丢失地址上的信息.我知道指针只是地址,因此我应该能够将uint32_t指针设置为相同的地址.
此代码产生错误:

invalid conversion from 'uint8_t*' to 'uint32_t*' in initialization
Run Code Online (Sandbox Code Playgroud)

Ser*_*eyA 5

这将违反所谓的严格别名规则,因此无法完成.悲伤,但是真的.

使用memcpy复制数据,并在许多情况下,编译器将优化内存拷贝,并产生相同的代码,因为他们将与演员,但在符合标准的方式.