【程序代码】--- memcpy 与 memmove
memcpy 内存拷贝函数 函数原型: void *memcpy(void *dst, const void *src, size_t n); 功能: 从src所指位置的地址为起始地址,拷贝n个字节到dst所指的内存地址的起始位置中 实现: void *my_memcpy( void *dst, const void *src, size_t n) { assert(dst != NULL && src != NULL ); char *p_dst = ( char *)dst; const char *p_src = ( const char *)src; while (n--) { p_dst++ = p_src++; } } 缺陷: 未考虑内存重叠等问题 memmove 功能: 与memcpy基本一致,但遭遇内存重叠仍可以正确进行 实现: void *my_memmove( char *dst, const char *src, size_t n) { assert(dst != NULL && src != NULL ); char *p_dst = ( char *)dst; const char *p_src = ( const char *)src; if (p_dst <= p_src || p_dst > (psrc + n)) { //不存在内存重叠,正常拷贝