У меня есть вопрос, используя 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
Я получаю исключение памяти.
&MyBuf[0];
использовать MyBuf.data()
вместо.p
,использование std::copy
вместо. Это быстрее и безопаснее.
const char* str = "BOBBO";
std::copy(str, str + sizeof(str), MyBuf.begin());
использование MyBuf.data()
в качестве указателя назначения, если у вас есть стандартная библиотека C ++ 11. С помощью &MyBuf[0]
должно работать, но излишне некрасиво.