模拟实现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,按字节完成内存复制,并分别拷贝整型数组与字符串验证函数效果。

相关推荐
wabs6661 小时前
关于图论【最短路径之Bellman_ford 算法|卡码网94.城市间货物运输的思考】
数据结构·算法·图论·卡码网·bellman_ford·求最短路径
MrZhao4001 小时前
On-Policy Distillation(OPD):为什么大模型后训练要在学生自己的轨迹上蒸馏?
算法
小小龙学IT1 小时前
Day 28 项目调试与优化 —— 给聊天室做一次“全面体检“
c语言·开发语言
朱峥嵘(朱髯)1 小时前
数据库如何根据全表 NDV 估算子集的 NDV
数据库·算法
jjjava2.01 小时前
牛客算法题(第四期)
算法
雪碧聊技术2 小时前
力扣 回溯法 | LCR 020. 回文子串
javascript·算法·leetcode
wabs6662 小时前
关于哈希表【力扣454.四数相加II的思考】
数据结构·算法·leetcode·散列表
我能坚持多久2 小时前
优选算法——专题一双指针(上):附四道例题详解
c++·学习·算法
老花眼猫2 小时前
数学艺术图案画-曼陀罗(78)
c语言·经验分享·青少年编程·课程设计