头文件:
string.h
函数的声明:
void* memcpy(void* dest,const void* src,size_t count)
返回值 :
返回指向dest的指针
用法:
从src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中
注:void*有返回值,void无返回值
例子:
#include<stdio.h>
#include<string.h>
int main() {
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int arr1[5] = { 9,8,7,6,5 };
memcpy(arr , arr1 , 20);
int i = 0;
for (i = 0;i < 10;i++) {
printf("%d ", arr[i]);
}
return 0;
}
函数的实现:
#include<assert.h>
void* my_memcpy(void* dest, const void* src, size_t count) {
assert(dest && src);
void* ret = dest;
while (count--) {
*(char*)dest = *(char*)src;
dest = (char*)dest + 1;
src = (char*)src + 1;
}
return ret;
}