详细讲解memcpy,memmove,memcmp,memset函数的使用以及模拟实现
memcpy
前面我们已经学过字符串拷贝函数,如果其他类型拷贝该怎么呢?
所以有了memcpy内存拷贝函数

函数memcpy从source的位置开始向后问复制num个字节的数据到destination的内存位置
这个函数遇见’\0’并不会停下来
如果source和destination有任何的重叠,复制的结果都是未定义的

模拟实现memcpy
void my_memcpy(void* des, void* src, size_t num)
{
assert(des && src);
while (num--)
{
*(char*)des = *(char*)src;
des = (char*)des + 1;
src = (char*)src + 1;
}
}
int main()
{
int arr1[10] = {
1,2,3,4,5,6,7,8,9,10 };
int arr2

本文详细介绍了C语言中的几个关键内存操作函数:memcpy用于无重叠区域的内存拷贝,memmove处理可能有重叠的内存拷贝,memcmp用于比较两块内存区域,memset则用于填充内存区域。文中还提供了这四个函数的模拟实现代码示例。
最低0.47元/天 解锁文章
7613

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



