C++官网参考链接:https://cplusplus.com/reference/cstring/memcpy/
函数
<cstring>
memcpy
void * memcpy ( void * destination, const void * source, size_t num );
复制内存块
将num个字节的值从source指向的位置直接复制到destination指向的内存块。
source指针和destination指针所指向的对象的底层类型与此函数无关;结果是数据的二进制副本。
该函数不检查source代码中的任何终止空字符—它总是精确复制num个字节。
为了避免溢出,destination和source形参所指向的数组的大小应该至少为num个字节,并且不应该重叠(对于重叠的内存块,memmove是一种更安全的方法)。
形参
destination
指向要复制内容的目标数组的指针,类型转换为void*类型的指针。
source
指向要复制的数据源的指针,类型转换为类型为const void*的指针。
num
要复制的字节数量。
size_t是无符号整型。
返回值
返回destination。
用例
/* memcpy example */
#include
#include
struct {
char name[40];
int age;
} person, person_copy;
int main ()
{
char myname[] = "Pierre de Fermat";
/* using memcpy to copy string: */
memcpy ( person.name, myname, strlen(myname)+1 );
person.age = 46;
/* using memcpy to copy structure: */
memcpy ( &person_copy, &person, sizeof(person) );
printf ("person_copy: %s, %d \n", person_copy.name, person_copy.age );
return 0;
}
输出: