memcpy、memmove、memcmp、memset函数的作用与区别

这篇具有很好参考价值的文章主要介绍了memcpy、memmove、memcmp、memset函数的作用与区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、memcpy与memmove

1、memcpy

作用:从source的位置开始向后复制num个字节的数据到destination的内存位置。

注意:

  • memcpy() 函数在遇到 ’\0’ 的时候不会停下来(strcpy字符串拷贝函数在遇到’\0’的时候会停下来);
  • destination和source所指向的内容不能重叠,否则得不到想要的结果。

void* memcpy(void* destination,const void* source,size_t num);
2、memmove

2、memmove

作用:从source的位置开始向后复制num个字节的数据并将其移动到destination的内存位置。

注意:和memcpy()函数的区别就是memmove()函数处理的原内存块和目标内存块是可以重叠。

void* memmove(void* destination,const void* source,size_t num);

3、memove与memcpy的区别与重叠内存问题

memmovememcpy的升级版,memmove是更加安全的。

详见:【C语言】浅谈memcpy与memmove 的区别_DanteIoVeYou的博客-CSDN博客


二、memcmp

作用:用于比较两个内存区域的内容。

int memcmp(const void * Buf1,const void * Buf2,size_t Size);

buf1:指向第一个内存区域的指针。
buf2:指向第二个内存区域的指针。
size:要比较的字节数。

  • 如果返回值 < 0,则表示 str1 小于 str2。
  • 如果返回值 > 0,则表示 str1 大于 str2。
  • 如果返回值 = 0,则表示 str1 等于 str2。

 


三、memset

作用:内存赋值函数,用来给某一块内存空间进行赋值的;包含在<string.h>头文件中。
详解:将已开辟内存空间s的首n个字节的值设为值c。
注意:该函数是按一个字节一个字节来给数组或者是结构体赋值。

void *memset(void *s, int v, size_t n)

s 是数组名,或指向某一内在空间的指针;
v 为要填充的值;
n 为要填充的字节数;

如果是字符类型数组的话,memset可以随便用,但是对于int类型的数组,一般只用来清0或者填充-1,如果是填充其他数据就会出错。


四、参考内容

【C语言】浅谈memcpy与memmove 的区别_DanteIoVeYou的博客-CSDN博客

C语言memcpy,memmove,memcmp,memset函数_sheygshsi的博客-CSDN博客

C/C++---memset、memcpy、memcmp函数简介_c/c++ 不同数组大小的memcpy_f斗牛士的博客-CSDN博客 文章来源地址https://www.toymoban.com/news/detail-629720.html

到了这里,关于memcpy、memmove、memcmp、memset函数的作用与区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言内存操作函数,memcpy的使用和模拟实现,memmove的使用和模拟实现,memcmp的使用,memset的使用。

    函数原型: void *dest 目标数据首元素地址 const void *src 源数据(需要拷贝过去的数据) size_t count 需要拷贝数据的字节大小 void *memcpy 拷贝结束后,返回目标数据的起始地址 函数作用: 拷贝 count 个字节的数据从源数据起始地址到目标空间。 函数的使用 函数的模拟实现: 注:

    2024年02月09日
    浏览(44)
  • C语言内存函数(memcpy、memmove、memcmp)详解

    memcpy函数为内存拷贝函数,既可以拷贝字符串,也可以拷贝整形数组、浮点型数组等,具有明显的应用优势, destination为目的地空间,source为不可修改(const)的来源空间,num表示无符号的字节数。其主要含义为将source内容拷贝到destination中,拷贝num个字节数。其返回类型、目

    2024年02月07日
    浏览(35)
  • 【C语言内存函数精选】memcpy、memset、memmove及仿真实现!掌握内存操作的艺术!

    ❤️ 博客主页: 小镇敲码人 🍏 欢迎关注:👍点赞 👂🏽留言 😍收藏 🌞 任尔江湖满血骨,我自踏雪寻梅香。 万千浮云遮碧月,独傲天下百坚强。 男儿应有龙腾志,盖世一意转洪荒。 莫使此生无痕度,终归人间一捧黄。🍎🍎🍎 ❤️ 我的努力求学没有得到别的好处,只

    2024年02月15日
    浏览(39)
  • 【C语言】内存函数memcpy和memmove的功能与模拟实现

    1.memcpy 功能:把source指向的前num个字节内容拷贝到destination指向的位置去,可以拷贝任意类型的数据。 注:1.memcpy并不关心\\0,毕竟传的也不一定是字符串,因此拷贝过程中遇到\\0也不会停下来。 2.num的单位是字节,并不是要拷贝的元素个数 3.如果source和destination有任何的重叠

    2024年02月19日
    浏览(40)
  • 提升内功之模拟实现库函数strlen/strncpy/strcmp/strcat/strstr/memcpy/memmove

    strlen函数的作用就是求字符串的首元素开始往后计算字符串的长度,直到’\\0‘,但不会把\\0的长度计算进去 strncpy的作用就是从source指向的字符串复制num个字节的内容到destination指向的字符串去 如果source的长度小于num,则填充0 注意source和destination的内容在空间上不要重叠,如

    2024年02月16日
    浏览(45)
  • C语言—模拟实现memcpy,memmove

    函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。 这个函数在遇到 \\\'\\0\\\' 的时候并不会停下来。 如果source和destination有任何的重叠,复制的结果都是未定义的。 其实要实现memcpy非常的简单,我们不管传进来的是哪种数据类型都统一强转为char*,我们知

    2024年02月15日
    浏览(38)
  • memcmp函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )

    memcmp()函数用于:比较两个内存块 函数声明:int memcmp ( const void * ptr1, const void * ptr2, size_t num ); 参数: ptr1:指向内存块的指针。 ptr2:指向内存块的指针。 数字:要比较的字节数。 返回值: 0: 在两个内存块中不匹配的第一个字节在  ptr1  中的值低于 在 ptr2  中的值(如果计

    2023年04月09日
    浏览(64)
  • 【C语言】memmove()函数(拷贝重叠内存块函数详解)

    🦄 个人主页 :修修修也 🎏 所属专栏 :C语言 ⚙️ 操作环境 : Visual Studio 2022 目录  一.memmove()函数简介 1.函数功能 2.函数参数 1.void * destination 2.onst void * source 3.size_t num 3.函数返回值 4.函数头文件 二.memmove()函数的具体使用 1.使用memmove()函数完成拷贝整型数组数据(目的地与源重

    2024年02月06日
    浏览(38)
  • 【C++】memset函数

    memset是计算机中C/C++语言 初始化函数 。作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。 简单来说,就是将某一块内存的 全部内容设置为指定的值 。 s:可以是指针或者数组,指向要填充的内存块赋值从地址s开始 ch:初始化

    2024年02月16日
    浏览(36)
  • kotlin的扩展函数“let、run、also、apply”的作用和区别

    Kotlin的扩展函数 let 、 run 、 also 、 apply 都是用于简化代码的工具,它们可以在不修改原始类或对象的情况下添加新的功能和行为。下面是它们的作用和区别: let :用于对一个可空对象进行操作,避免出现空指针异常。它会将对象作为lambda表达式的参数传递,并返回lambda表达

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包