我是靠谱客的博主 踏实汉堡,最近开发中收集的这篇文章主要介绍C语言 - 库函数memcpy、memmove、memset、memchr、memcmp,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文来源于网路,感谢网友分享

文章参考: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);

 

最后

以上就是踏实汉堡为你收集整理的C语言 - 库函数memcpy、memmove、memset、memchr、memcmp的全部内容,希望文章能够帮你解决C语言 - 库函数memcpy、memmove、memset、memchr、memcmp所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部