FAQ:WinAPI VCPP:скопировать блок памяти

Материал из Весельчак У
Версия от 11:40, 7 августа 2008; Mczim (обсуждение | вклад) (байтов --байт)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Как скопировать блок памяти?

Скопировать участок M1 длиной N байт в M2 можно функциями

void * memcpy(void * pM2, const void * pM1, size_t N);
void * memmove(void * pM2, const void * pM1, size_t N);

или при помощи макросов

CopyMemory(Destination, Source, Length);//использует
MoveMemory(Destination, Source, Length);

Если участки памяти перекрываются, то результат работы memcpy не определён. Функция memmove гарантирует правильное копирование даже при перекрывающихся участках.

Примечание:

Правильность переданных параметров в функциях не проверяется.