memcyp的作用就是将一个字符串的数据拷贝到另一个字符串上。
以上是使用memcyp所需要的参数,des为被传值数,sou为传值数,num则是为一共要传多少个数据单位(数据单位为字节),返回值为sou的首地址,如果传值为空指针返回NULL,因此可以通过这些数据写下以下代码:
void* my_memcpy(void* str1,const void* str2,size_t num)
{
if (str1==NULL && str2 == NULL)
{
return NULL;
}
char* pc = (char*)str1;
char* ps = (char*)str2;
while (num--)
{
*pc++ = *ps++;
}
return str1;
}
int main()
{
char arr1[20] = {"bit "};
char arr2[20] = { "hello " };
//memcpy(arr1+3,arr1,6);
my_memcpy(arr1,arr2,6);
printf("%s", arr1);
return 0;
}
结果也是不负所望完成了字符串拷贝
但是也因此发现了一些问题,如果将字符串本身又当作传值数又当作被传值数会发生什