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

代码验证:

相关推荐
wdfk_prog44 分钟前
[Linux]学习笔记系列 -- [kernel][time]tick
linux·笔记·学习
我命由我123452 小时前
Photoshop - Photoshop 工具栏(22)单行选框工具
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
学习路上_write2 小时前
STM32回调函数使用/定时器/GPIO/串口/
c语言·单片机·嵌入式硬件
User_芊芊君子3 小时前
【成长纪实】我的鸿蒙成长之路:从“小白”到独立开发,带你走进鸿蒙的世界
学习·华为·harmonyos·鸿蒙开发
czy87874753 小时前
C语言实现状态模式
c语言·状态模式
czy87874754 小时前
C语言实现迭代器模式
c语言·迭代器模式
GilgameshJSS4 小时前
STM32H743-ARM例程36-DNS
c语言·arm开发·stm32·单片机·嵌入式硬件
嵌入式-老费4 小时前
自己动手写深度学习框架(快速学习python和关联库)
开发语言·python·学习
执笔论英雄5 小时前
【大模型训练】zero 学习及deepseed实战
人工智能·深度学习·学习
czy87874756 小时前
C语言实现策略模式
c语言·排序算法·策略模式