#include
void* my_memmove(void* dest, const void* src, int num)
{
char* pdest = dest;
char* psrc = src;
assert(dest);
assert(src);
if((pdest >= psrc) && (pdest <= psrc+num))
{
while(num)
{
*(pdest+num-1) = *(psrc+num-1); //从后向前
num--;
}
}
else
{
while(num)
{
*pdest++ = *psrc++; //从前向后
num--;
}
}
return dest;
}模拟实现memmove函数
最新推荐文章于 2024-09-13 17:51:05 发布
本文介绍了一个名为my_memmove的函数实现,该函数用于内存块的移动拷贝。文章通过C语言代码展示了如何处理源和目标内存区域可能出现的重叠情况,并使用assert确保传入指针的有效性。

7715

被折叠的 条评论
为什么被折叠?



