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

Материал из Весельчак У
Версия от 20:37, 31 июля 2008; RXL (обсуждение | вклад) (Новая: ===Как скопировать блок памяти?=== Скопировать участок M1 длиной N байтов в M2 можно функциями <code cpp> void * mem...)

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

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

Скопировать участок 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 гарантирует правильное копирование даже при перекрывающихся участках.

Примечание:

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