2

std::vector strvect std::vector intvect のような文字列と整数のベクトルがありますが、これらの型から void * にキャストすると、文字列からのキャストは、通過する整数に関して失敗します。何らかの理由?

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 に答える