memmove, wmemmove

한 버퍼를 다른 버퍼로 이동합니다. 이러한 함수의 더 안전한 버전을 사용할 수 있습니다. 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로 복사합니다. 원본 영역과 대상 영역의 일부가 겹치는 경우 두 함수 모두 겹치는 영역의 원래 원본 바이트가 덮어쓰기 전에 복사되도록 합니다.

보안 참고 사항 대상 버퍼가 이동된 문자 수를 수용할 만큼 충분히 큰지 확인합니다. 자세한 내용은 버퍼 오버런 방지를 참조하세요.

memmovewmemmove 함수는 다음 예와 같이 #include 문 앞에 상수 _CRT_SECURE_DEPRECATE_MEMORY가 정의된 경우에는 사용되지 않습니다.

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>

또는

#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, _wcsncpy_l, _mbsncpy, _mbsncpy_l