|
<cstring>
void * memmove ( void * destination, const void * source, size_t num );
Move block of memory
Copies the values of num bytes from the location pointed by source to the memory block pointed by destination. Copying takes place as if an intermediate buffer was used, allowing the destination and source to overlap.
The underlying type of the objects pointed by both the source and destination pointers are irrelevant for this function; The result is a binary copy of the data.
The function does not check for any terminating null character in source - it always copies exactly num bytes.
To avoid overflows, the size of the arrays pointed by both the destination and source parameters, shall be at least num bytes.
Parameters
- destination
- Pointer to the destination array where the content is to be copied, type-casted to a pointer of type void*.
- source
- Pointer to the source of data to be copied, type-casted to a pointer of type const void*.
- num
- Number of bytes to copy.
Return Value
destination is returned.
Example
1 2 3 4 5 6 7 8 9 10 11
|
/* memmove example */
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "memmove can be very useful......";
memmove (str+20,str+15,11);
puts (str);
return 0;
}
|
Output:
memmove can be very very useful.
|
See also
memcpy | Copy block of memory (function) |
memchr | Locate character in block of memory (function) |
memcmp | Compare two blocks of memory (function) |
memset | Fill block of memory (function) |
strncpy | Copy characters from string (function) |
|