2

当我从这些类型转换为 void * 时,我有一个字符串和整数向量,例如 std::vector strvect std::vector intvect ,从字符串转换失败至它通过的整数。任何原因?

void *data; 
data = (void *)(strvect .front()); 
// gives me the error "Cannot cast from string to void * " 
data = (void *)(intvect.front());

有什么具体原因吗?

4

1 回答 1

1

非指针值不能转换为void指针。所以要么你必须使用地址运算符

data = reinterpret_cast<void*>(&strvect.front());

或者你得到实际的 C 字符串指针

data = reinterpret_cast<void*>(strvect.front().c_str());
于 2012-09-27T07:05:36.653 回答