memcpy函数可以实现内存之间的字节拷贝(Copies bytes between buffers.)
函数原型:void *memcpy( void *dest, const void *src, size_t count );
初步的函数实现代码:
#include<stdio.h>
#include<string.h>
char*p = "aabbcc";
void* Memcpy(void *dest, const void *src, size_t count)
{
char*p = (char*)dest;
char*p1 = (char*)src;
while (count--)
*p++ = *p1++;
return dest;
}
int main()
{
char s[20] = {0};
Memcpy(s, p, strlen(p));
/*Memcpy(s + 2, s, strlen(p));*/
//memcpy(s, p, strlen(p));
//memcpy(s + 2, s, strlen(p));
return 0;
}
看似大功告成,可是这里面有个bug,分别运行下面两句代码:Memcpy(s + 2, s, strlen(p));memcpy(s + 2, s, strlen(p));你会看到我们自己写的函数和系统函数运行后的效果截然不同: