欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > C语言 ——— 学习、使用memmove函数 并模拟实现

C语言 ——— 学习、使用memmove函数 并模拟实现

2024/10/23 17:09:06 来源:https://blog.csdn.net/weixin_55341642/article/details/141034696  浏览:    关键词:C语言 ——— 学习、使用memmove函数 并模拟实现

目录

memmvoe函数的功能

学习memmove函数​编辑

模拟实现memmove函数 


memmvoe函数的功能

memmvoe函数的功能类似于memcpy函数,都是内存拷贝,唯一的区别是memcpy函数不能成功拷贝原数据,而memmvoe函数可以

举例来说:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

将以上数据的 [1, 2, 3, 4, 5] 拷贝到 [3, 4, 5, 6, 7] 的位置

使用memcpy函数拷贝出来为:[1, 2, 1, 2, 1, 2, 1, 8, 9, 10] ,出现这一结果是因为覆盖了拷贝的值

使用memmove函数拷贝出来为:[1, 2, 1, 2, 3, 4, 5, 8, 9, 10]


学习memmove函数

memmove函数的功能类似等同于memcpy函数

C语言 ——— 学习、使用memcpy函数 并模拟实现-CSDN博客 


模拟实现memmove函数 

void* my_memmove(void* destination, const void* source, size_t num)
{// 断言assert(destination && source);// 分情况判断if (destination < source){// 从前向后拷贝while (num--){*((char*)destination) = *((char*)source);destination = (char*)destination + 1;source = (char*)source + 1;}}else{// 从后向前拷贝while (num--){*((char*)destination + num) = *((char*)source + num);}}
}

代码验证:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com