C++ — memcpy_s 与 memcpy

memcpy_s():

  memcpy_s(
     void *dest,
     size_t numberOfElements,
     const void *src,
     size_t count 
  );

memcpy_s的四个参数命名其实是有迷惑性的,个人的理解是,dest-目标地址,numberOfElenments-目标地址的字符个数(可使用sizeof获取),src-源地址,count-需要拷贝的源字符个数(可使用sizeof获取)。

strcpy_s、memcpy_s等具有缓冲区大小检查的函数,可以有效的检测内存溢出,找到出错的代码。但是strcpy、memcpy这样的出错了需要自己扒代码。

如:

 int dest[10], src[100];
 memcpy(dest, src, 20 * sizeof (int)); 
 memcpy_s(dest, sizeof(dest), src, 20 * sizeof (int)); 

memcpy会访问越界,破坏了dest后面的数据,并且可能我们还不知道。而memcpy_s就会弹出一个对话框提醒我们。

C++ -- memcpy_s 与 memcpy

原文链接: https://www.cnblogs.com/zzzsj/p/14251401.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++ -- memcpy_s 与 memcpy

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/207079

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午10:47
下一篇 2023年2月12日 下午10:47

相关推荐