Compartilhar via


memmove, wmemmove

Move um buffer para outra.Versões mais seguras dessas funções estão disponível; consulte 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
);

Parâmetros

  • dest
    Objeto de destino.

  • src
    Objeto de fonte.

  • count
    Número de bytes (memmove) ou caracteres ()wmemmove) para copiar.

Valor de retorno

O valor de dest*.*

Comentários

Cópias count () bytesmemmove) ou caracteres ()wmemmove) de src para dest*.* Se algumas regiões da área de fonte e destino estiverem sobrepostas, ambas as funções garantir que os bytes de fonte original na região de sobreposição são copiados antes que sejam substituídos.

Observação de segurança Verifique se o buffer de destino é o mesmo dimensionar ou maior que o buffer de fonte.Para obter mais informações, consulte Evitar saturações de buffer.

The memmove e wmemmove funções só serão substituídas se a constante _CRT_SECURE_DEPRECATE_MEMORY é definido antes para a demonstrativo de inclusão para que sistema autônomo funções de ser substituída, sistema autônomo no exemplo a seguir:

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>

Requisitos

Rotina

Cabeçalho necessário

memmove

<string.h>

wmemmove

<wchar.h>

Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.

Exemplo

// 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

Equivalente do NET Framework

sistema::Buffer::BlockCopy

Consulte também

Referência

Manipulação de buffer

_memccpy

memcpy, wmemcpy

strcpy wcscpy, _mbscpy

funções strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l