memcpy() en C/C++

La función memcpy() en C y C++ se utiliza para copiar un bloque de memoria de una ubicación a otra. A diferencia de otras funciones de copia, la memcpy La función copia el número especificado de bytes de una ubicación de memoria a la otra ubicación de memoria, independientemente del tipo de datos almacenados.

Se declara en archivo de cabecera. En C++, también se define dentro archivo de cabecera.

Sintaxis de memcpy

La función memcpy se declara como:

void * memcpy (void * to , const void * from , size_t numBytes ); 

Parámetros

    a: Un puntero a la ubicación de la memoria donde se almacenarán los datos copiados. from: Un puntero a la ubicación de la memoria desde donde se copiarán los datos. numBytes: el número de bytes que se copiarán.

Valor de retorno

  • Esta función devuelve un puntero a la ubicación de la memoria donde se copian los datos.

Ejemplo de memcpy

A continuación se muestra el programa en C para mostrar el funcionamiento de memcpy()

C




// C program to demonstrate working of memcpy> #include> #include> int> main()> {> > char> str1[] => 'Geeks'> ;> > char> str2[] => 'Quiz'> ;> > puts> (> 'str1 before memcpy '> );> > puts> (str1);> > // Copies contents of str2 to str1> > memcpy> (str1, str2,> sizeof> (str2));> > puts> (> ' str1 after memcpy '> );> > puts> (str1);> > return> 0;> }>

Producción

str1 before memcpy Geeks str1 after memcpy Quiz 

Puntos importantes sobre memcpy()

  1. memcpy() no comprueba si hay desbordamiento o .
  2. memcpy() genera un comportamiento indefinido cuando las direcciones de origen y destino se superponen.

Nota : memmover() es otra función de biblioteca que maneja bien la superposición.

Artículo relacionado

  • Escribe tu propio memcpy() y memmove()