¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
memmove_s, wmemmove_s
div
EOF
Collapse the table of content
Expand the table of content
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

memmove_s, wmemmove_s

Mueve un búfer a otro. Éstas son versiones de memmove, wmemmove con mejoras de seguridad como se describe en Características de seguridad en CRT.

errno_t memmove_s(
   void *dest,
   size_t numberOfElements,
   const void *src,
   size_t count
);
errno_t wmemmove_s(
   wchar_t *dest,
   size_t numberOfElements,
   const wchar_t *src,
   size_t count
);

dest

Objeto de destino.

numberOfElements

Tamaño del búfer de destino.

src

objeto de origen.

count

Número de bytes (memmove_s) o de caracteres (wmemmove_s) para copiar.

cero si correctamente; un código de error del error

condiciones de error

dest

numberOfElements

src

Valor devuelto

Contenido de dest

NULL

cualquier

cualquier

EINVAL

no modificado

cualquier

cualquier

NULL

EINVAL

no modificado

cualquier

< count

cualquier

ERANGE

no modificado

copia los bytes de count de caracteres de src a dest. Si algunas regiones de origen y de destino se superponen, memmove_s garantiza que los bytes de origen originales en la región que se superpone se copiarán antes de ser sobrescrito.

Si dest o si src es un puntero null, o si la cadena de destino es demasiado pequeño, estas funciones invoca un controlador no válido de parámetro, tal y como se describe en Validación de parámetros . Si la ejecución puede continuar, estas funciones EINVAL return y errno determinado a EINVAL.

rutina

Encabezado necesario

memmove_s

<string.h>

wmemmove_s

<wchar.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

// crt_memmove_s.c
//
// The program demonstrates the 
// memmove_s function which works as expected
// for moving overlapping regions.

#include <stdio.h>
#include <string.h>

int main()
{
   char str[] = "0123456789";

   printf("Before: %s\n", str);

   // Move six bytes from the start of the string
   // to a new position shifted by one byte. To protect against
   // buffer overrun, the secure version of memmove requires the
   // the length of the destination string to be specified. 

   memmove_s((str + 1), strnlen(str + 1, 10), str, 6); 

   printf_s(" After: %s\n", str);
}

Before: 0123456789
 After: 0012345789

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft