memcpy 函数学习

来源:互联网 发布:晋中网络教研平台登录 编辑:程序博客网 时间:2024/05/16 14:36

还是英文来的的更加直接些。

Copy block of memory

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 exactlynum bytes.

To avoid overflows, the size of the arrays pointed by both the destination andsource 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 typevoid*.
source
Pointer to the source of data to be copied, type-casted to a pointer of type void*.
num
Number of bytes to copy.
/* 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;}

结果
str1: Sample stringstr2: Sample stringstr3: copy successful