C/C++中的memcpy

这个函数的用法还是比较简单的,只是经常忘记,所以就记下来吧。

1. 所需头文件

   


2. 函数原型

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

(1) 复制指向source位置的num个字节的值直接到指向destination的内存区域中。

(2) source和destination指向的数据类型不用相关,这是二进制复制。

(3) source指向的区域和destination指向的区域不要重叠。

(4) 函数返回destination。

下面是摘自的C/C++ Reference的解释:

Copies the values of num bytes from the location pointed by source directly to the memory block pointed bydestination.
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 leastnum bytes, and should not overlap (for overlapping memory blocks, memmove is a safer approach).

3. 例子

/* memcpy example */
#include 
#include 

int main (void)
{
  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;
}

输出:

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

你可能感兴趣的:(技术文章)