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

代码验证:

相关推荐
§ꦿCFོ༉7 小时前
嵌入式八股文—C语言入门学习(四)
c语言·开发语言·学习
2603_969694859 小时前
【JavaWeb学习记录】MyBatis核心知识点与实战笔记:从入门到动态SQL
笔记·sql·学习·mysql·mybatis·javaweb·学习方法
北京云帆互联科技14 小时前
云帆培训考试系统更新说明:v9.3.0
java·学习
Severus_black16 小时前
【C++初阶】Stack、Queue算法题大练兵!
c语言·c++·算法·stl
sxlishaobin16 小时前
Maven Setting详解
java·学习·maven
唐青枫18 小时前
C 语言 strcpy() 用法详解与实战 Demo
c语言
程序猿打工仔18 小时前
计算机基础(C语言)考编、专技岗
c语言·开发语言·算法
꧁细听勿语情꧂20 小时前
二叉树余题,排序、直接插入排序、希尔排序
c语言·开发语言·数据结构·算法
是main不是漫21 小时前
【C++——类和对象(上)】筑基篇:以封装奠定面向对象之基
c语言·开发语言·c++
Felven2 天前
C. Brr Brrr Patapim
c语言·开发语言