原型:extern void *memcpy(void *dest, void *src, unsigned int count);
功能:由src所指内存区域复制count个字节到dest所指内存区域。
模拟实现代码如下:
void* My_memcpy(char* dest, const char* src, int count)
{
assert(dest);
assert(src);
while (count--)
{
*dest ++ = *src ++;
}
return dest;
}
测试函数:
#include<stdio.h>
#include<windows.h>
#include<assert.h>
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
int str[] = { 5, 6, 7, 8, 9, 0 };
int i = 0;
My_memcpy(arr, str, sizeof(str));
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
printf("%d ", arr[i]);
}
system("pause");
return 0;
}
注意:src和dest所指内存区域不能重叠,函数返回指向dest的指针
(当然这里会有缺陷,可以考虑使用memmove函数)