Содержимое и значение заголовка такого же, как и стандартный заголовок библиотеки C. В 7.26.2.1:
Функция memcpy копирует n символов из объекта, указанного By S2 [второй аргумент] в объект, указанный на
s1 [первый аргумент]. < /p>
< /blockquote>
Однако часто, часто, в C ++, мы видим, как: < /p> p> p> p> p> p> g.
Код: Выделить всё
constexpr std::size_t N = sizeof(T);
char buf[N];
T obj;
std::memcpy(buf, &obj, N);
std::memcpy(&obj, buf, N);
В этом коде «buf» -pointer, переданный в Memcpy технически указывает на первый элемент BUF , поскольку он производится с помощью распада массива к указателю. Строго говоря, объект и, с которого Memcpy , следовательно, должен быть первым элементом, а не весь массив. Может ли быть необходимо использовать и BUF здесь, чтобы быть правильным и полностью избежать UB? Это стандартный дефект? В первую очередь речь идет о формулировке стандарта и поведении «абстрактной машины», а не о том, работает ли это в реальном мире программ C ++, созданных реальными компиляторами.
Подробнее здесь: https://stackoverflow.com/questions/796 ... st-element