在c语言中memcpy库函数为内存函数,也就是说,它操作的是内存空间。
在cplusplus.com中,对于该库函数的解释如下
它的作用是:以source指向的地址为起点,将连续的n个字节数据,复制到以destin指向的地址为起点的内存中。
换句话讲,就是复制粘贴函数。
其中传参参数第一个是目标地址,第二个是复制内容的地址,第三个是数据长度。
因为是内存操作函数,所以第三个参数应是以字节为单位的。
模拟该函数的代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<string.h>
void* my_memcpy(void * dst, void * src, size_t n)
{
void* ret = dst;
//assert(dst);
//assert(src);
while (n--)
{
*(char*)dst = *(char*)src;
dst = (char*)dst + 1;
src = (char*)src + 1;
}
return(ret);
}
int main()
{
int ch1[10] = { 1,2,3,4,5,6,7,8,9,10 };
int ch2[10] = { 0 };
my_memcpy(ch2, ch1, 20);
for (int i = 0; i < 10; i++)
{
printf("%d ", ch2[i]);
}
return 0;
}
注意返回类型为void*,指向复制拷贝后的数据地址。