代码
#include <stdio.h>
// 自定义的内存复制函数,模拟标准库函数memcpy
// 参数 s1 指向目标内存区域
// 参数 s2 指向源内存区域
// 参数 sz 表示要复制的字节数
// 返回值是指向目标内存区域的指针
void* my_memcpy(void* s1, void* s2, int sz) {
// 保存目标内存区域的起始地址,以便在函数结束时返回
void* ret = s1;
// 循环sz次,每次复制一个字节
for (int i = 0; i < sz; i++) {
// 将源内存区域的第i个字节复制到目标内存区域的第i个位置
// 通过将s1和s2转换为(char*)类型,我们能够对它们进行逐字节操作
*((char*)s1 + i) = *((char*)s2 + i);
}
// 返回目标内存区域的起始地址
return ret;
}
// 主函数,程序的入口点
int main() {
// 初始化两个数组,arr1包含6个整数,arr2初始化为10个0
int arr1[6] = { 1, 2, 3, 4, 5, 6 };
int arr2[10] = { 0 };
// 调用自定义的my_memcpy函数,将arr1数组复制到arr2数组中
// sizeof(arr1)获取arr1数组的大小(以字节为单位)
my_memcpy(arr2, arr1, sizeof(arr1));
// 打印复制后的arr2数组的前6个元素
int j = 0;
for (j = 0; j < 6; j++) {
// 使用printf函数打印arr2数组的每个元素,后面跟一个空格
printf("%d ", arr2[j]);
}
// main函数返回0,表示程序成功执行
return 0;
}
新手尝试,如果有错误还请告诉我(x.x)