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

代码验证:

相关推荐
Gigavision1 分钟前
SEED-V数据集下载 时频联合编码和空间、时间并行注意力学习脑电表示
学习
Logic1012 分钟前
C语言/数据结构字符串题解:统计“chhc“子串权值总和——一次遍历模式匹配
c语言·数据结构·算法·字符串·时间复杂度·空间复杂度·ascii
LONGZHIQIN10 分钟前
Python学习笔记
笔记·python·学习
czt_java29 分钟前
网络基础入门:IPv4、IPv6、私网公网、MAC、以太网帧与 DNS 学习笔记
网络·学习·macos
我命由我123451 小时前
LRU 缓存淘汰策略
数据结构·redis·学习·mysql·算法·缓存·学习方法
一木 之林1 小时前
微信小程序开发全攻略·文章版|01 入门与环境搭建
人工智能·学习·计算机视觉·微信小程序·notepad++
Xudde.1 小时前
Quaoar 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
遇印记1 小时前
网络安全,数据链路层,物理层
运维·服务器·网络·windows·学习
cc5725026531 小时前
2027校招:大数据管理与应用转财务数字化,会计业务、SQL与BI学习路线
数据库·sql·学习
Swilderrr2 小时前
论文精读 | Fast Approximate Similarity Join in Vector Databases(SimJoin)
笔记·学习