다음을 통해 공유


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*.*로 복사합니다. 원본 영역과 대상의 일부 영역이 겹치는 경우 두 함수는 모두 겹치는 영역에서 원본 소스 바이트가 덮어쓰기 전에 복사 되는지 확인합니다.

보안 정보 는 원본 버퍼보다 크거나 같은 크기의 대상 버퍼인지 확인합니다. 자세한 내용은 버퍼 오버런 방지를 참조하십시오.

_CRT_SECURE_DEPRECATE_MEMORY 상수가 아래 예제 처럼 함수를 사용하기 않기 위해 포함 문 이전에 정의되지 않는 경우, memmove 및 wmemmove 함수는 사용 되지 않습니다.

#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 항목

System::Buffer::BlockCopy

참고 항목

참조

버퍼 조작

_memccpy

memcpy, wmemcpy

strcpy, wcscpy, _mbscpy

strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l