memmove, wmemmove
Przenosi jeden bufor do innego.Bezpieczniejsze wersje te funkcje są dostępne; 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
);
Parametry
dest
Obiekt docelowy.src
Obiekt źródłowy.count
Liczba bajtów (memmove) lub znaki (wmemmove) do skopiowania.
Wartość zwracana
The value of dest*.*
Uwagi
Copies count bytes (memmove) or characters (wmemmove) from src to dest*.* W niektórych regionach obszar źródłowy i docelowy nachodzą na siebie, obie funkcje zapewnienia, że oryginalny bajtów źródła w regionie nakładające się są kopiowane przed zastąpieniem.
Uwaga zabezpieczeń upewnij się, że bufor docelowy jest taki sam lub większy rozmiar niż bufor źródła.Aby uzyskać więcej informacji, zobacz Overruns buforu unikanie.
memmove i wmemmove funkcje będą przestarzałe tylko, jeśli stała _CRT_SECURE_DEPRECATE_MEMORY jest zdefiniowana przed do włączenia instrukcji w celu obowiązków, które mają być zaniechane, takich jak w poniższym przykładzie:
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
Przykład
// 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 );
}
Odpowiednik w programie .NET Framework
Zobacz też
Informacje
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l