memmove
, wmemmove
Перемещает один буфер в другой. Доступны более безопасные версии этих функций; see memmove_s
, wmemmove_s
.
Синтаксис
void *memmove(
void *dest,
const void *src,
size_t count
);
wchar_t *wmemmove(
wchar_t *dest,
const wchar_t *src,
size_t count
);
Параметры
dest
Конечный объект.
src
Исходный объект.
count
Число копируемых байтов (memmove
) или символов (wmemmove
).
Возвращаемое значение
Значение dest
.
Замечания
Копирует count
байты (memmove
) или символы (wmemmove
) из src
dest
. Если некоторые части исходного и целевого регионов перекрываются, обе функции гарантируют, что исходные исходные байты в перекрывающейся области копируются перед перезаписью.
Обратите внимание на безопасность . Убедитесь, что целевой буфер достаточно велик, чтобы вместить количество перемещаемых символов. Дополнительные сведения см. в разделе "Избегание переполнения буфера".
wmemmove
Функции memmove
устарели только в том случае, если константа _CRT_SECURE_DEPRECATE_MEMORY
определена перед #include
инструкцией, как показано в следующем примере:
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Требования
Маршрут | Обязательный заголовок |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_memcpy.c
// Illustrate overlapping copy: memmove
// always handles it correctly; memcpy may handle
// it correctly.
//
#include <memory.h>
#include <string.h>
#include <stdio.h>
char str1[7] = "aabbcc";
int main( void )
{
printf( "The string: %s\n", str1 );
memcpy( str1 + 2, str1, 4 );
printf( "New string: %s\n", str1 );
strcpy_s( str1, sizeof(str1), "aabbcc" ); // reset string
printf( "The string: %s\n", str1 );
memmove( str1 + 2, str1, 4 );
printf( "New string: %s\n", str1 );
}
The string: aabbcc
New string: aaaabb
The string: aabbcc
New string: aaaabb
См. также
Манипуляция буфером
_memccpy
memcpy
, wmemcpy
strcpy
, , wcscpy
_mbscpy
strncpy
, , _strncpy_l
_wcsncpy_l
wcsncpy
_mbsncpy
,_mbsncpy_l