FAQ:WinAPI VCPP:скопировать блок памяти — различия между версиями

Материал из Весельчак У
Перейти к: навигация, поиск
(Новая: ===Как скопировать блок памяти?=== Скопировать участок M1 длиной N байтов в M2 можно функциями <code cpp> void * mem...)
 
м (байтов --байт)
 
Строка 1: Строка 1:
 
===Как скопировать блок памяти?===
 
===Как скопировать блок памяти?===
  
Скопировать участок M1 длиной N байтов в M2 можно функциями
+
Скопировать участок 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 гарантирует правильное копирование даже при перекрывающихся участках.

Примечание:

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