本文来源于网路,感谢网友分享
文章参考:https://www.cnblogs.com/kuihuayou/p/7307447.html
memcpy、memmove、memset、memchr、memcmp都是C语言中的库函数,在头文件string.h中。
memcpy和memmove的作用是拷贝一定长度的内存的内容,
memset用于缓冲区的填充工作,
memchr用于字符的查找工作,
memcmp用于比较内存中缓冲区的大小。
1.void * memcpy ( void * dest, const void * src, size_t num );
功能:将以src作为起始地址的数据复制num个字节到以dest为起始地址的数据中,不支持dest和src重叠的情况。函数返回dest指针。
2.void * memset ( void * ptr, int value, size_t num );
功能:将以ptr作为起始地址的数据的num个字节设置为value。函数返回destination指针。
3.void * memmove ( void * dest, const void * source, size_t num );
功能:功能:将以source作为起始地址的数据的num个字节移动到以destination为起始地址的数据中,支持dest和src重叠的情况。函数返回dest指针。
4.int memcmp ( const void * ptr1, const void * ptr2, size_t num );
功能:比较以ptr1为起始地址数据和以ptr2为起始地址的数据的num个字节大小情况。如果num个字节都相等,则相等,函数返回0。从起始位置开始,如果某个字节大,则prt1>ptr2,函数返回正数,否则ptr<ptr2,函数返回负数。
memcmp 函数使用比较结构体时,注意在日常编码中,当一个结构体内不含有指针成员时,有时为了方便,我们会使用memcmp来对两个结构体进行比较,但是这种做法不是一个正确的方法,也可能会导致错误的比较结果
文章参考:https://blog.csdn.net/bajianxiaofendui/article/details/88563218
5.void * memchr (const void * ptr, int value, size_t num );
功能:在以ptr作为起始地址的数据中的num个字节中查找value,如果查到,则返回value所在的地址,否则返回NULL。
eg:
receive_flag = 0;
memset(buffer, 0, BUFFER_SIZE);
memcpy(buffer, receive_buffer, strlen(receive_buffer));
memset(receive_buffer, 0, BUFFER_SIZE);
来源:CSDN
作者:Steven&Aileen
链接:https://blog.csdn.net/qq_25144391/article/details/103240947