Came across these two pieces of advice regarding the use of these library functions in C:
- DO use memmove() instead of memcpy() in case you're dealing with overlapping memory regions.
- DON'T try to use memset() to initialize type int, float, or double arrays to any value other than 0.
More details here. If you are an embedded C programmer, its worth a read.