### 5.10 `memmove`—move possibly overlapping memory

Synopsis

         #include <string.h>
         void *memmove(void *dst, const void *src, size_t length);

Description
This function moves length characters from the block of memory starting at `*`src to the memory starting at `*`dst. `memmove` reproduces the characters correctly at `*`dst even if the two areas overlap.

Returns
The function returns dst as passed.

Portability
`memmove` is ANSI C.

`memmove` requires no supporting OS subroutines.