目录
memmvoe函数的功能
学习memmove函数编辑
模拟实现memmove函数
memmvoe函数的功能
memmvoe函数的功能类似于memcpy函数,都是内存拷贝,唯一的区别是memcpy函数不能成功拷贝原数据,而memmvoe函数可以
举例来说:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
将以上数据的 [1, 2, 3, 4, 5] 拷贝到 [3, 4, 5, 6, 7] 的位置
使用memcpy函数拷贝出来为:[1, 2, 1, 2, 1, 2, 1, 8, 9, 10] ,出现这一结果是因为覆盖了拷贝的值
使用memmove函数拷贝出来为:[1, 2, 1, 2, 3, 4, 5, 8, 9, 10]
学习memmove函数
memmove函数的功能类似等同于memcpy函数
C语言 ——— 学习、使用memcpy函数 并模拟实现-CSDN博客
模拟实现memmove函数
void* my_memmove(void* destination, const void* source, size_t num)
{// 断言assert(destination && source);// 分情况判断if (destination < source){// 从前向后拷贝while (num--){*((char*)destination) = *((char*)source);destination = (char*)destination + 1;source = (char*)source + 1;}}else{// 从后向前拷贝while (num--){*((char*)destination + num) = *((char*)source + num);}}
}
代码验证: