memcpy() is used to copy a block of memory from a location to another. It is declared in string.h

Below is a sample C program to show working of memcpy().



/* A C program to demonstrate working of memcpy */
#include <stdio.h>
#include <string.h>

int main ()
{
char str1[] = "Geeks";
char str2[] = "Quiz";

puts("str1 before memcpy ");
puts(str1);

/* Copies contents of str2 to sr1 */
memcpy (str1, str2, sizeof(str2));

puts("\nstr1 after memcpy ");
puts(str1);

return 0;
}


Output:



str1 before memcpy 
Geeks

str1 after memcpy
Quiz


Notes:

1) memcpy() doesn’t check for overflow or \0

2) memcpy() leads to problems when source and destination addresses overlap.

memmove()​ is another library function that handles overlapping well.