【发布时间】:2016-01-17 04:37:56
【问题描述】:
我想知道是否有一种无需大量复制即可解决此问题的好方法。
比如说,我有一个字节缓冲区,我可以在其中保存很多东西。我会正确地保存 4 个字节的整数和浮点数等。
现在如果我的整数保存在缓冲区中的位置 0x0001,有没有办法可以创建一个 int* 并将其指向该位置?
我试过了:
int* ptr = reinterpret_cast<int*>(&data.dataPtr);
dataPtr 是一个const char*,其中 ofc 将地址保存在缓冲区中我的整数。
在我的转换 ptr 保存 dataPtr 的地址之后,当我取消引用 ptr 时,它会打印 dataPtr 的地址。我应该使用 static_cast 或 reinterpret_cast 再次转换以获取整数吗?
这甚至可以在没有遇到未定义行为的情况下实现吗?
【问题讨论】:
标签: c++