Espacios de nombres
Variantes
Acciones

std::memmove

De cppreference.com
< cpp‎ | string‎ | byte
 
 
 
 
Definido en el archivo de encabezado <cstring>
void* memmove(void* dest, constvoid* src, std::size_t count );

Copia count caracteres del objeto apuntado por src al objeto apuntado por dest. Ambos objetos se reinterpretan como arrays de unsignedchar.

Los objetos pueden traslaparse: la copia toma lugar como si los caracteres se copiaran a un array de caracteres temporal y luego se copiaran del array a dest.

Si bien dest o src es un puntero inválido o nulo, el comportamiento es indefinido, incluso si count es cero.

Si los objetos son potencialmente traslapantes o no son trivialmente copiables (TriviallyCopyable), el comportamiento de memmove no está especificado y puede estar indefinido.

Contenido

[editar]Parámetros

dest - Puntero a la ubicación de memoria a la cual copiar.
src - Puntero a la ubicación de memoria de la cual copiar.
count - Número de bytes a copiar.

[editar]Valor de retorno

dest

[editar]Notas

A pesar de estar especificada "como si" se usara un búfer temporal, las implementaciones actuales de esta función no incurren en el costo de doble copiado o memoria extra. Para una count pequeña, puede cargar y escribir a los registros; para bloques más grandes, un enfoque (glibc y bsd libc) es copiar los bytes hacia adelante a partir del inicio del búfer si el destino inicia antes de la fuente, y de lo contrario hacia atrás, con un plan alternativo para std::memcpy cuando no hay traslape en lo absoluto.

[editar]Ejemplo

#include <iostream>#include <cstring>   int main(){char str[]="1234567890";std::cout<< str <<'\n'; std::memmove(str +4, str +3, 3);// copia de [4, 5, 6] a [5, 6, 7]std::cout<< str <<'\n';}

Salida:

1234567890 1234456890

[editar]Véase también

Copia un búfer a otro
(función)[editar]
Llena un búfer con un carácter
(función)[editar]
Copia una cierta cantidad de caracteres anchos entre dos arrays que posiblemente se superponen
(función)[editar]
Copia un rango de elementos a una nueva ubicación.
(plantilla de función)[editar]
Copia un rango de elementos en orden inverso.
(plantilla de función)[editar]
Comprueba si un tipo es trivialmente copiable.
(plantilla de clase)[editar]
Documentación de C para memmove
close