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

代码验证:

相关推荐
朱朱没烦恼yeye9 小时前
java基础学习
java·python·学习
aloha_78910 小时前
agent智能体学习(尚硅谷,小智医疗)
人工智能·spring boot·python·学习·java-ee
科技林总11 小时前
2.2 图论应用
学习
陌上明苏12 小时前
.NET学习-依赖注入、配置系统、日志系统
学习
知识分享小能手12 小时前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04中的Shell编程详细知识点(含案例代码)(17)
linux·学习·ubuntu
大山老树12 小时前
行动教练学习笔记
笔记·学习
副露のmagic14 小时前
更弱智的算法学习 day16
数据结构·学习·算法
@zulnger14 小时前
python 学习笔记(文件读写)
笔记·python·学习
微露清风14 小时前
系统性学习C++-第十六讲-AVL树实现
java·c++·学习
YJlio14 小时前
Kali Linux 外置无线网卡接入与识别排障(VMware 环境|合规学习版)
linux·网络·学习