FAQ:WinAPI VCPP:скопировать блок памяти — различия между версиями
Материал из Весельчак У
RXL (обсуждение | вклад) (Новая: ===Как скопировать блок памяти?=== Скопировать участок M1 длиной N байтов в M2 можно функциями <code cpp> void * mem...) |
Mczim (обсуждение | вклад) м (байтов --байт) |
||
Строка 1: | Строка 1: | ||
===Как скопировать блок памяти?=== | ===Как скопировать блок памяти?=== | ||
− | Скопировать участок M1 длиной N | + | Скопировать участок M1 длиной N байт в M2 можно функциями |
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
void * memcpy(void * pM2, const void * pM1, size_t N); | void * memcpy(void * pM2, const void * pM1, size_t N); |
Текущая версия на 11:40, 7 августа 2008
Как скопировать блок памяти?
Скопировать участок 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 гарантирует правильное копирование даже при перекрывающихся участках.
Примечание:
Правильность переданных параметров в функциях не проверяется.