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

相关推荐
ZhengEnCi11 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
秋天的怀念_David12 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Pniubi12 小时前
力扣283移动零(双指针法)
算法·leetcode·职场和发展
hhb_61812 小时前
大模型落地三重优化实战
人工智能·算法·机器学习
云和数据.ChenGuang13 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
2601_9707038314 小时前
工业除湿机租赁:把一份租金合同拆开看
大数据·数据结构·算法·数据库架构·推荐算法
心中有你021414 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
ZhengEnCi15 小时前
同样的模型,为什么本地和云 API 差别那么大:量化精度、聊天模板与采样参数的三大元凶
人工智能·算法·llm
Zwawa15 小时前
串口为什么会丢字节:从轮询到中断和环形缓冲区
c语言·单片机·嵌入式
Flynn Liang15 小时前
RAG 答非所问/幻觉怎么破?Spring AI QuestionAnswerAdvisor 召回优化实战(TopK/重排/混合检索)
人工智能·算法·spring·rag·幻觉·springai