memcpy 内存拷贝
函数原型:void * memcpy(void * destination , void * source, size_t num);
- 函数mencpy从source的位置开始向后复制num个字符的数据到destinaton的内存位置
- 这个函数遇到’\0’并不会停下来
- 如果source和destination有任何的重叠,复制的结果都是未定义的
- 用于两块独立的内存之间的拷贝
int main()
{
int arr1[] = {1, 2, 3, 4, 5, 6, 7};
int arr2[10] = {0};
memcpy(arr2, arr1, 28); //最后一个参数的单位是byte
}
模拟实现memcpy函数,如下:
void* my_memcpy(void* dest, const void* src, size_t num)
{
assert(dest && src);
void* p = dest;
while (num--)
{
*(char*)dest = *(char*)src;
dest =(char *)dest + 1;
src = (char*)src + 1;
}
return p;
}
memmove 内存移动
函数原型:void * memmove ( void * destination, const void * source, size_t num );
- Copies