1.memcpy使用和模拟实现
void * memcpy ( void * destination, const void * source, size_t num );
- 函数
memcpy
从source位置开始向后复制num
个字节数据到destination指向的内存位置 - 这个函数在遇到
\0
的时候并不会停下来 - 如果source和destination有任何的重叠,复制的结果是未定义的
memcpy
函数模拟实现:
2.memmove使用和模拟实现
void * memmove ( void * destination, const void * source, size_t num );
memmove
和memcpy
的差别就是,memmove
函数处理的原内存块和目标内存块是可以重叠的
memmove
函数模拟实现:
3.memset函数的使用
void * memset ( void * ptr, int value, size_t num );
memset
是用来设置内存的,将内存中的值以字节为单位设置成想要的内容
4.memcmp函数的使用
int memcmp ( const void * ptr1, const void * ptr2, size_t num );
比较从ptr1
和ptr2
指针指向的位置开始,向后的num
个字节
返回值如下: