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) 복사 합니다.
반환 값
The value of dest*.*
설명
Copies count bytes (memmove) or characters (wmemmove) from src to dest*.* 원본 영역과 대상의 일부 영역으로 겹칠 경우 두 함수 모두 덮어쓰기 전에 원본 소스 바이트 겹치는 영역에 복사 되었는지 확인 합니다.
보안 참고 크기 또는 원본 버퍼 보다 큰 있는지 대상 버퍼에 일치 하는지 확인 합니다.자세한 내용은 버퍼 오버런 방지.
memmove 및 wmemmove 경우 함수를 사용 합니다만 상수 _CRT_SECURE_DEPRECATE_MEMORY 포함 문은 더 이상 사용 될 수 있는 함수를 이전에 정의 된, 다음 예제에서와 같은.
#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 );
}
해당 .NET Framework 항목
참고 항목
참조
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l