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

代码验证:

相关推荐
星夜夏空998 小时前
STM32单片机学习(3)——前置知识学习
stm32·单片机·学习
Shadow(⊙o⊙)9 小时前
初识Qt+经典方式实现hello world!的交互
开发语言·c++·后端·qt·学习
Byte Wizard9 小时前
C语言指针深入浅出3
c语言·开发语言
星夜夏空999 小时前
STM32单片机学习(5) —— STM32的一些名词解释
stm32·单片机·学习
拾2149 小时前
小论文中使用他人文章图表的权限获取
学习
GEO从入门到精通9 小时前
GEO课程的学习路径应该怎么规划?
人工智能·学习
handler0110 小时前
速通蓝桥杯省一:二分算法
c语言·开发语言·c++·笔记·算法·职场和发展·蓝桥杯
炽烈小老头10 小时前
【 每天学习一点算法 2026/05/08】最小覆盖子串
学习·算法
爱编码的小八嘎10 小时前
C语言完美演绎9-27
c语言
南境十里·墨染春水10 小时前
linux学习进展 I/O复用函数初步
linux·运维·学习