Memmove deals with overlapping destinations where as memcpy doesnt. Memmove uses a temporary buffer , so that no risk of overlapping.
Memcpy just copies the data from the source area mentioned to the destination area mentioned.