模拟实现memcpy

目录

一、功能说明

my_memcpy手动复刻实现了库函数 memcpy 的基础功能,自定义 my_memcpy 将任意类型源内存的数据逐字节复制至目标内存地址,主函数中分别对整型数组、字符串数组进行内存拷贝测试,把整型数组 arr1 的数据完整复制到 arr2、字符串 str1 内容拷贝至 str2 并打印验证结果,以此验证自定义内存拷贝函数能够适配不同数据类型完成整块内存的无重叠复制。

二、代码展示

javascript 复制代码
#include <stdio.h>

#include <stddef.h>



//构造my_memcpy函数

void* my_memcpy(void* dest, const void* src, size_t n)

{

	char* dst = (char*) dest;

	const char* sour = (const char*) src;

	for(size_t i = 0; i < n; i++)

	{

		dst[i] = sour[i];

	}

	return dest;

}



int main()

{

	int arr1[] = {1, 2, 3, 4, 5};

	int arr2[5] = {0};

	//调用函数

	my_memcpy(arr2, arr1, sizeof(arr1));

	//输出结果

	printf("拷贝后 arr2:");

	for(int i = 0; i < 5; i++)

	{

		printf("%d ", arr2[i]);

	}

	char str1[] = "hello world";

	char str2[20] = {0};

	//调用函数

	my_memcpy(str2, str1, sizeof(str1));

	//输出结果

	printf("\n拷贝后 str2:%s\n", str2);

	return 0;

} 

三、运行效果展示

四、总结

该程序实现自定义内存拷贝函数my_memcpy,按字节完成内存复制,并分别拷贝整型数组与字符串验证函数效果。

相关推荐
aramae5 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
荆棘鸟智能5 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算
无敌贵点大王6 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
Logic1016 小时前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
INGNIGHT9 小时前
270 · 电话号码的字母组合II(Trie)
linux·算法
2401_8390805410 小时前
C++常见八股
数据结构·c++·算法
青山是哪个青山10 小时前
LeetCode 188:买卖股票的最佳时机 IV
算法
mikuyyds10 小时前
geo-toolbox 插件算法解析:RUSLE 与 MUSLE 的工程化落地
算法·rust·gis
a1879272183110 小时前
【算法】树(二):队列与祖先——BFS 骨架三配件、短路透传与合流
算法·leetcode·二叉树··bfs·算法讲解·树遍历
Escalating_xu10 小时前
【C 语言项目】数组和函数综合实践:从零实现控制台扫雷游戏
c语言