目录
一、功能说明
my_memcpy手动复刻实现了库函数 memcpy 的基础功能,自定义 my_memcpy 将任意类型源内存的数据逐字节复制至目标内存地址,主函数中分别对整型数组、字符串数组进行内存拷贝测试,把整型数组 arr1 的数据完整复制到 arr2、字符串 str1 内容拷贝至 str2 并打印验证结果,以此验证自定义内存拷贝函数能够适配不同数据类型完成整块内存的无重叠复制。
二、代码展示
javascript
#include <stdio.h>
#include <stddef.h>
//构造my_memcpy函数
void* my_memcpy(void* dest, const void* src, size_t n)
{
char* dst = (char*) dest;
const char* sour = (const char*) src;
for(size_t i = 0; i < n; i++)
{
dst[i] = sour[i];
}
return dest;
}
int main()
{
int arr1[] = {1, 2, 3, 4, 5};
int arr2[5] = {0};
//调用函数
my_memcpy(arr2, arr1, sizeof(arr1));
//输出结果
printf("拷贝后 arr2:");
for(int i = 0; i < 5; i++)
{
printf("%d ", arr2[i]);
}
char str1[] = "hello world";
char str2[20] = {0};
//调用函数
my_memcpy(str2, str1, sizeof(str1));
//输出结果
printf("\n拷贝后 str2:%s\n", str2);
return 0;
}
三、运行效果展示

四、总结
该程序实现自定义内存拷贝函数my_memcpy,按字节完成内存复制,并分别拷贝整型数组与字符串验证函数效果。