Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.

memcpy, wmemcpy

Copies bytes between buffers. More secure versions of these functions are available; see memcpy_s, wmemcpy_s.

void *memcpy(
   void *dest,
   const void *src,
   size_t count 
wchar_t *wmemcpy(
   wchar_t *dest,
   const wchar_t *src,
   size_t count


New buffer.


Buffer to copy from.


Number of characters to copy.

The value of dest.

memcpy copies count bytes from src to dest; wmemcpy copies count wide characters (two bytes). If the source and destination overlap, the behavior of memcpy is undefined. Use memmove to handle overlapping regions.

Security Note   Make sure that the destination buffer is the same size or larger than the source buffer. For more information, see Avoiding Buffer Overruns.

The memcpy and wmemcpy functions will only be deprecated if the constant _CRT_SECURE_DEPRECATE_MEMORY is defined prior to the inclusion statement in order for the functions to be deprecated, such as in the example below:

#include <memory.h>


#include <wchar.h>


Required header


<memory.h> or <string.h>



For additional compatibility information, see Compatibility in the Introduction.

See memmove for a sample of how to use memcpy.

Community Additions

© 2015 Microsoft