1 函数简介
此函数的主要功能是将任意内容从一个对象(结构体 数组 类)复制到另一个对象。
这种复制可能会替换以前对象中存在的数据。
2 函数原型:
void *memcpy(void *dest, const void *src, size_t n);
3 头文件
#include < memory.h>
4 参数
dest: 待替换对象起始位置
src: 替换对象的起始位置
n: 替换的长度
5 函数源码分析:
void *memcpy(void *desc,const void * src,size_t size)
{
if((desc == NULL) && (src == NULL))
{
return NULL;
}
unsigned char *desc_ = (unsigned char*)desc; //转换为字节指针
unsigned char *src_ = (unsigned char*)src;
while(size >0)
{
*desc_ = *src_; //按字节一个字节一个字节的复制对象
desc_++;
src_++;
size–;
}
return desc;
}
6 举例说明
例1:
将一串字符串复制到一个数组中
#include < stdio.h>
#include < memory.h>
int main()
{
char *a =”information copy!”;
char b[60];
memcpy(b,a,strlen(a)+1);
printf(“b is %s\n”,b);
return 1;
}
例2:
字符串替换数组
#include < stdio.h>
#include < memory.h>
int main()
{
char *a =”information copy!”;
char b[60]=”abcdefghijklmnopqrsyuvwxyz123″;
memcpy(b,a,strlen(a));
printf(“b is %s\n”,b);
return 1;
}
7 函数应用场景
结构体缓存
read 有缓存数据