#include<stdio.h>
//处理内存重叠
void* memmove(void* des, void* src, size_t count)
{
if (des == NULL || src == NULL || count <= 0)return des;
void* ret = des;
char * dest = (char*)des;
char* source = (char*)src;
if (dest <= source || dest >= (source + count))
{
//正向拷贝
//copy from lower addresses to higher addresses
while (count--)
*dest++ = *source++;
}
else
{
//反向拷贝
//copy from higher addresses to lower addresses
dest += count - 1;
source += count - 1;
while (count--)
*dest-- = *source--;
}
return ret;
}
memmove处理内存重叠的情况
最新推荐文章于 2023-10-28 02:15:21 发布