ManyCodes.com – codes & scripts Get free programming codes and tutorials!

13Feb/120

What does memcpy do?

 void * memcpy ( void * destination, const void * source, size_t num ); 

Copy block of memory
Copies the values of num bytes from the location pointed by source directly to the memory block pointed by destination.

The underlying type of the objects pointed by both the source and destination pointers are irrelevant for this function; The result is a binary copy of the data.

The function does not check for any terminating null character in source - it always copies exactly num bytes.

To avoid overflows, the size of the arrays pointed by both the destination and source parameters, shall be at least num bytes, and should not overlap (for overlapping memory blocks, memmove is a safer approach).

Parameters
destination - Pointer to the destination array where the content is to be copied, type-casted to a pointer of type void*.
source - Pointer to the source of data to be copied, type-casted to a pointer of type void*.
num - Number of bytes to copy.

Return Value
destination is returned.

Example


/* memcpy example */
#include <stdio.h>
#include <string.h>

int main ()
{
 char str1[]="Sample string";
 char str2[40];
 char str3[40];
 memcpy (str2,str1,strlen(str1)+1);
 memcpy (str3,"copy successful",16);
 printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
 return 0;
}

Output:
str1: Sample string
str2: Sample string
str3: copy successful