1

を使って質問memcpy_sです。

std::vector<char> MyBuf;   
MyBuf.resize(10);

char* p = &MyBuf[0];

memcpy_s次に、 using のデータをvectorusing ポインターにコピーしますp

memcpy_s(XXXXX, 10, "BOBBO", 5);

の代わりに何を入力する必要がありXXXXXますか?

&p[0]代わりに使用するXXXXXと、メモリ例外が発生します。

4

3 に答える 3

5
  1. C++11 を使用している場合は&MyBuf[0];、使用せずMyBuf.data()に代わりに使用してください。
  2. 使用するポインターはp.
  3. 宛先を文字列として使用できるようにする場合は、さらに 1 文字をコピーします。ターミネータがありません。
于 2012-12-05T12:22:32.063 に答える
1

std::copy代わりに使用してください。そのほうが速くて安全です。

const char* str = "BOBBO";
std::copy(str, str + sizeof(str), MyBuf.begin());
于 2012-12-05T12:25:52.790 に答える
0

MyBuf.data()C++11 標準ライブラリがある場合は、宛先ポインターとして使用します。を使用&MyBuf[0]するとうまくいくはずですが、不必要に醜いです。

于 2012-12-05T12:24:31.883 に答える