1

我有一个问题,使用memcpy_s.

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

char* p = &MyBuf[0];

现在我想将 using 复制到using 指针memcpy_s的数据中。vectorp

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

我需要输入什么而不是XXXXX

当使用&p[0]而不是XXXXX我得到一个内存异常。

4

3 回答 3

5
  1. 如果使用 C++11,不要使用&MyBuf[0];MyBuf.data()而是使用。
  2. 要使用的指针是p.
  3. 如果您希望目的地可用作字符串,请再复制一个字符,您将缺少终止符。
于 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 回答