12

C++ の uint8_t 配列に std::string オブジェクト (名前など) が必要です。関数reinterpret_cast<const uint8_t*>は私の文字列を拒否します。また、NS-3 を使用してコーディングしているため、いくつかの警告がエラーとして解釈されています。

4

3 に答える 3

30

のデータへのポインターが必要な場合string:

reinterpret_cast<const uint8_t*>(&myString[0])

のデータのコピーが必要な場合string:

std::vector<uint8_t> myVector(myString.begin(), myString.end());
uint8_t *p = &myVector[0];
于 2011-10-05T16:26:57.733 に答える
12

文字列オブジェクトには、.c_str()を返すメンバー関数がありますconst char*。このポインターは、次のようにキャストできますconst uint8_t*

std::string name("sth");

const uint8_t* p = reinterpret_cast<const uint8_t*>(name.c_str());

このポインターは、元の文字列オブジェクトが変更または破棄されない限り有効であることに注意してください。

于 2011-10-05T16:30:13.693 に答える