memcpy(介绍与模拟实现)

时间:2020-12-30 00:37:50

介绍????????

1.原址????????

memcpy(介绍与模拟实现)

memcpy(介绍与模拟实现)

2使用????????

2.1使源打印20个字节到,目的地

memcpy(介绍与模拟实现)

2.2内存显示

memcpy(介绍与模拟实现)

2.2从源的地址+2开始,打印20字节到目的地()

memcpy(介绍与模拟实现)

2.3但是如果重叠,拷贝请看下节介绍(memmove)

模拟实现

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
void* my_memcpy(void* dest, const void* src, size_t num)
//void :表示不限制数组
{
void* ret = dest;
assert(dest && src);
while (num--)
{
*(char*)dest = *(char*)src;
dest = (char*)dest + 1;
src = (char*)src + 1;
}
return ret;
}
int main()
{
int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
int arr2[10] = { 0 };
my_memcpy(arr2, arr1 + 2, 20);
return 0;
}

memcpy(介绍与模拟实现)

总结????‍♂️????‍♂️????‍♂️

memcpy函数可以,任意类型的拷贝,但是不能重叠拷贝,重叠拷贝,需????要用memmove函数,功能比strcpy字符串拷贝????强大