私はいくつかのコードに取り組んでおり、ある程度の量のバイナリデータを取得してから、そこからいくつかのバイトを抽出したいと考えています。だから、私は次のものを持っています:
unsigned char * payload;
int payload_size;
uint32_t major = 0, minor = 0;
payload = out_resp.get_payload(&payload_size); // Retrieve the data, return a pointer
if(payload_size >= 8) { // Need at least 8 bytes in the payload
std::copy(payload, payload + 4, &major);
std::copy(payload + 4, payload + 8, &minor);
}
ご覧のとおり、ペイロードの最初の 4 バイトは に、次の 4 バイトは に配置する必要がありmajor
ますminor
。std::copy
ただし、デバッグ中に、最初の の後、変数が!payload
に設定されていることに気付きました。NULL
これは の予想される動作std::copy
ですか、それとも何か問題がありますか? 別のポインターを作成してそれをに渡すだけで、これを回避する必要がありstd::copy
ますか?