Open In App

memcpy() in C/C++

The memcpy() function in C and C++ is used to copy a block of memory from one location to another. Unlike other copy functions, the memcpy function copies the specified number of bytes from one memory location to the other memory location regardless of the type of data stored.

It is declared in <string.h> header file. In C++, it is also defined inside <cstring> header file.



Syntax of memcpy

The memcpy function is declared as:

void *memcpy(void *to, const void *from, size_t numBytes);

Parameters

Return Value

Example of memcpy

Below is the C program to show the working of memcpy()






// 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 str1
    memcpy(str1, str2, sizeof(str2));
 
    puts("\nstr1 after memcpy ");
    puts(str1);
 
    return 0;
}

Output
str1 before memcpy 
Geeks

str1 after memcpy 
Quiz

Important Points about memcpy()

  1. memcpy() doesn’t check for overflow or \0.
  2. memcpy() leads to undefined behaviour when source and destination addresses overlap.

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

Related Article

Article Tags :
C++