模拟实现memcpy

倾然丶 夕夏残阳落幕 提交于 2020-02-07 06:55:05

模拟实现my_memcpy函数

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>//assert函数的头文件
//size_t  无符号整型(unsigned) 数字必须>0
void* my_memcpy(void* str, const void* dst, size_t num)
{	//void* str 传入要被赋值的数组的地址
	//void* dst 传入被复制的数组的地址
	assert(str&&dst);//保证不为空指针
	int* str_str = (int*)str;//将任意数据类型强转成需要的类型
	int* str_dst =  (int*)dst;//关键看给的是什么类型
	for (int i = 0; i < num; ++i)
	{
		str_str[i] = str_dst[i];//进行逐个copy
	}
	return dst;//返回指针类型
}
int main()
{
	int dst[4] = { 1, 1, 2, 3 };
	int str[4];
	my_memcpy(str, dst, 4);调用my_memcpy函数
	system("pause");
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!