目录
memcpy函数的功能
学习memcpy函数编辑
使用memcpy函数
模拟实现memcpy函数
memcpy函数的功能
memcpy函数是内存拷贝函数,用于把任意类型的数据的内存拷贝到另一个同类型的数据上
学习memcpy函数
函数的参数:
void* destination:
目的地数据,需要被拷贝的数据,因为是任意类型,所以使用void*指针接收
const void* source:
源头数据,源头数据不用改变,使用加上const修饰,且同样不知道是什么类型的数据,所以使用void*指针接收
size_t sum:
需要从源头数据拷贝到目的地数据多少个字节
函数的返回值:
拷贝结束后,会返回目标空间的起始地址,因为并不知道目标空间的类型,所以是返回void*的指针
使用memcpy函数
拷贝整型数组:
拷贝字符串数组:
………………
模拟实现memcpy函数
代码演示:
void* my_memcpy(void* destination, const void* source, size_t num)
{
// 断言
assert(destination != NULL);
assert(source != NULL);
// 存放目的地数据的起始位置
void* ret = destination;
// 将目的地数据的指针和源头数据的指针强制类型转换为char*
// 再配合 num 每一字节每一字节的拷贝
char* dest = (char*)destination;
char* sour = (char*)source;
while (num--)
{
*dest = *sour;
dest++;
sour++;
}
return ret;
}
代码验证:
不接受返回值时:
接收返回值时: