一、memcpy的注意事项
1、头文件为<string.h>
2、声明为void* memcpy(void* dest, const void* src, size_t num);
3、目标数组dest要足够大
4、不可同一数组重叠拷贝
5、将num个字节拷贝完函数才结束
二、memcpy的模拟实现
#include <stdio.h>
#include <assert.h>
void* my_memcpy(void* dest, const void* src, size_t num)
{
assert(dest && src);//用断言判断dest和src是否为空指针
//类型转换
char* dest1 = (char*)dest;
const char* src1 = (const char*)src;
while (num--)
{
*dest1++ = *src1++;//拷贝
}
return dest;//返回dest的起始地址
}
int main()
{
int arr1[5] = { 0 };
int arr2[] = { 1, 2, 3, 4, 5 };
my_memcpy(arr1, arr2, 20);
int i = 0;
for (i = 0; i < 5; i++)
{
printf("%d ", arr1[i]);//结果为:1 2 3 4 5
}
return 0;
}
附:若有不足,望指出
^-^感谢阅读^-^