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);
		}
	}
}

代码验证:

相关推荐
a1117763 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao4 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
人邮异步社区4 小时前
怎么把C语言学到精通?
c语言·开发语言
你想知道什么?5 小时前
线性回归-学习笔记
笔记·学习·线性回归
鱼毓屿御5 小时前
从「只会聊」到「边想边做」的跃迁
前端·学习·react.js
AOwhisky7 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
minglie18 小时前
zynq中linux系统的自动登录和免密登录
学习
茯苓gao9 小时前
嵌入式开发笔记:Qt信号槽机制深度解析——从原理到实战的全方位指南
开发语言·笔记·嵌入式硬件·qt·学习
xiaobobo33309 小时前
C语言中宏定义宏名和宏值之间的关系
c语言·宏定义·语义型
我想我不够好。10 小时前
监控学习 7.23 1.5hour
学习