【发布时间】:2013-09-01 04:55:27
【问题描述】:
我有一个const vector<uint8_t>>,我需要将它传递给一个接受const unsigned char* 的函数。这两种类型的大小相同,等等,所以我猜测这里有一种强制类型的好方法。处理此类问题的惯用方法是什么?
我的第一直觉是使用reinterpret_cast,但在演员表之后数据不一样了。这是我的代码:
shared_ptr<const vector<uint8_t>> data = operation.getData();
const unsigned char* data2 = reinterpret_cast<const unsigned char*>(&data);
myFunction(data2, data->size());
我可能在这里混淆了一个值的指针,但也许我的整个方法是不正确的。
【问题讨论】:
-
或者更确切地说:
data->data() -
vector::data()返回指向向量中实际数据的指针。 -
@BenjaminLindley,为什么?为什么?我一定要疯了。
operator->到底怎么没想到?
标签: c++ vector type-conversion reinterpret-cast