
目录一、功能说明二、代码展示三、运行效果展示四、总结一、功能说明my_memmove手动实现 memmove 内存移动函数可处理内存重叠场景目标地址与源地址重叠时从后往前拷贝避免数据覆盖无重叠则正向拷贝主函数分别测试内存重叠拷贝、普通内存拷贝两种场景并输出结果。二、代码展示#includestdio.h#includestddef.h//模拟实现memmovevoid*my_memmove(void*dest,constvoid*src,size_t n){char*start(char*)dest;char*dst(char*)dest;constchar*s(constchar*)src;if(dstsdstsn){for(size_t in;i0;i--){dst[i-1]s[i-1];}}else{for(size_t i0;in;i){dst[i]s[i];}}returnstart;}intmain(){char arr[]abcdefghij;my_memmove(arr3,arr1,5);printf(结果为%s\n,arr);char arr2[]123456789;char buf[20]{0};my_memmove(buf,arr2,5);printf(结果为%s\n,buf);return0;}三、运行效果展示四、总结自行实现memmove函数区分内存是否重叠来选择正向 / 逆向拷贝防止重叠拷贝时数据被覆盖最后两组测试验证功能。