1、memcpy() 简介
1.1 函数原型
void *memcpy(void *destin, void *source, unsigned n);
1.2 参数
- destin– 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
- source– 指向要复制的数据源,类型强制转换为 void* 指针。
- n– 要被复制的字节数。
1.3 功能
从源source所指的内存地址的起始位置开始拷贝n个字节到目标destin所指的内存地址的起始位置中。
1.4 头文件
#include<string.h>
1.5 返回值
该函数返回一个指向目标存储区destin的指针。
2、memcpy() 用法
如果目标数组destin本身已有数据,执行memcpy()后,将覆盖原有数据(最多覆盖n)。如果要追加数据,则每次执行memcpy后,要将目标数组地址增加到你要追加数据的地址。
具体代码如下:
#include <stdio.h>
#include <string.h>
int main(void)
{
char data[7]="memcpy";
printf("%s\n",data);
char cdata[20]={
0};
memcpy(cdata,data,6);
printf("%s\n",cdata);
memcpy(cdata,"123456",6);
printf("%s\n",cdata);
memcpy(&cdata[6],"78910",6); //追加数据
printf("%s\n",cdata);
return 0;
}
运行结如下:
memcpy
memcpy
123456
12345678910