Previous Page
Next Page


Copies the contents of a memory block

#include <string.h>
void *memcpy ( void * restrict dest , const void * restrict src , size_t n  );

The memcpy( ) function copies n successive bytes beginning at the address in src to the location beginning at the address in dest. The return value is the same as the first argument, dest. The two pointer values must be at least n bytes apart, so that the source and destination blocks do not overlap; otherwise, the function's behavior is undefined. For overlapping blocks, use memmove( ).


typedef struct record {
  char  name[32];
  double data;
  struct record *next, *prev;
} Rec_t;

Rec_t template = { "Another fine product", -0.0, NULL, NULL };
Rec_t *tmp_new;

if (( tmp_new  = malloc( sizeof(Rec_t) )) != NULL )
  memcpy( tmp_new, &template, sizeof(Rec_t) );
  fprintf( stderr, "Out of memory!\n" ), return -1;

See Also

strcpy( ), strncpy( ), memove( ), wmemcpy( ), wmemmove( )

Previous Page
Next Page