### 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.