我有一个使用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
时,我会收到内存异常。
答案 0 :(得分:5)
&MyBuf[0];
,而是使用MyBuf.data()
。p
。答案 1 :(得分:1)
请改用std::copy
。它更快更安全。
const char* str = "BOBBO";
std::copy(str, str + sizeof(str), MyBuf.begin());
答案 2 :(得分:0)
如果您有C ++ 11标准库,请使用MyBuf.data()
作为目标指针。使用&MyBuf[0]
应该有效,但是不必要的丑陋。