memcpy_s C ++指针

时间:2012-12-05 12:16:36

标签: c++ vector memcpy

我有一个使用memcpy_s的问题。

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

char* p = &MyBuf[0];

现在,我想使用指针memcpy_s使用vector复制p的数据。

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

我需要输入什么而不是XXXXX

使用&p[0]代替XXXXX时,我会收到内存异常。

3 个答案:

答案 0 :(得分:5)

  1. 如果使用C ++ 11,请不要使用&MyBuf[0];,而是使用MyBuf.data()
  2. 使用的指针是p
  3. 如果您希望目标可用作字符串,则复制一个字符,您将错过终结符。

答案 1 :(得分:1)

请改用std::copy。它更快更安全。

const char* str = "BOBBO";
std::copy(str, str + sizeof(str), MyBuf.begin());

答案 2 :(得分:0)

如果您有C ++ 11标准库,请使用MyBuf.data()作为目标指针。使用&MyBuf[0]应该有效,但是不必要的丑陋。