我有一个字节数组Data [],我通过这个函数访问其中的非结构化项目:
inline HItem* AtP(const uint32_t &PosB) {
return reinterpret_cast<HItem*>(Data + PosB);
}
我将HItem的起始偏移量传递给函数(它们是可变大小),这样可以正常工作。
我试过了这个:
inline HItem& At(const uint32_t &PosB) {
return *reinterpret_cast<HItem*>(Data + PosB);
}
但是我收到了堆栈损坏错误,因为它返回的对象不是物理上位于我指定的内存地址中的那个,而是其他东西(不确定是否随机)。
第二个功能有什么问题?它甚至可能吗?