【发布时间】:2014-09-17 20:05:12
【问题描述】:
如果我有一个 char* 数组:
char* c = getBytesFromSomewhere();
我想将最后 4 个字节读入一个 uint,然后将前 4 个字节等读入。我试过这个:
char* end = &c[size-5];
获取指向数组最后 4 个字节的指针,然后:
unsigned int n = *(reinterpret_cast<int *>(end));
但它似乎不起作用....我做错了什么?
【问题讨论】:
-
可能是endianness 问题吗?
-
什么似乎不起作用?
-
另外,你减去的太多了。
-
你试过
memcpy吗? -
这也违反了严格的别名,而且你有潜在的对齐问题。使用
memcpy。
标签: c++ arrays binary byte reinterpret-cast