日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【c++】10. memset()、【strcpy_s()、memcpy_s()】、【strcpy(),memcpy()】

發布時間:2025/3/21 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【c++】10. memset()、【strcpy_s()、memcpy_s()】、【strcpy(),memcpy()】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

選擇使用【strcpy_s、memcpy_s】還是選擇【strcpy,memcpy】? memset()的用法

memcpy_s,strcpy_s函數明確的指定了目標內存的大小,能夠清晰的暴露出內存溢出的問題,而普通的memcpy、strcpy則不會。

為了保證內存拷貝有足夠的空間,防止筆誤,【盡量使用memcpy_s代替memcpy】。
(1)memcpy_s()的用法:

errno_t memcpy_s(void *dest,size_t numberOfElements,const void *src,size_t count ); // 注意,numberOfElements >= count,否則會出現異常

memcpy_s 復制src 的 count 字節到 dest;如果dest或 src是null指針,或者 numberOfElements 為緩沖區太小,會拋出異常。

void Raw2Mat(CameraPublishDecodedStruct src_yuv_img,cv::Mat &frame) {std::shared_ptr<hiai::ImageData<u_int8_t>> input_image =std::make_shared<hiai::ImageData<u_int8_t>>();input_image->size = src_yuv_img.raw_data.size();// input_image->data = std::shared_ptr<u_int8_t>(new // u_int8_t[src_yuv_img.raw_data.size()]); // memcpy_s(input_image->data.get(), src_yuv_img.raw_data.size(),// src_yuv_img.raw_data.data(), src_yuv_img.raw_data.size());//上面注釋的兩句話可以用下面這句代替input_image->data = std::shared_ptr<u_int8_t>(const_cast<u_int8_t *>(src_yuv_img.raw_data.data()), [](u_int8_t *p) {});input_image->height = src_yuv_img.height;input_image->width = src_yuv_img.width;cv::Mat rgb_img(input_image->height, input_image->width, CV_8UC3);cv::Mat yuyv_img =cv::Mat(input_image->height * 3 / 2, input_image->width, CV_8UC1,static_cast<void *>(input_image->data.get()));cv::cvtColor(yuyv_img, rgb_img, cv::COLOR_YUV420sp2RGB);frame = rgb_img; }

(2) memset()函數的用法
memset函數詳細說明
1)void *memset(void *s,int c,size_t n)
總的作用:將已開辟內存空間 s 的首 n 個字節的值設為值 c。
2) memset()函數常用于內存空間初始化。如:

char str[100]; memset(str,0,100);

3)memset可以方便的清空一個結構類型的變量或數組。 如:

struct sample_struct{char csName[16];int iSeq;int iType; };對于變量: struct sample_strcut stTest;一般情況下,清空stTest的方法: stTest.csName[0]='/0'; stTest.iSeq=0; stTest.iType=0;用memset就非常方便: memset(&stTest,0,sizeof(struct sample_struct));如果是數組: struct sample_struct TEST[10];memset(TEST,0,sizeof(struct sample_struct)*10);#include <mem.h> void* memset(void* s, int c, size_t n){unsigned char* p = (unsigned char*) s;while (n > 0) {*p++ = (unsigned char) c;--n;}return s; }

memset()的函數, 它可以一字節一字節地把整個數組設置為一個指定的值。memset()函數在mem.h頭文件中聲明,它把數組的起始地址作為其第一個參數,第二個參數是設置數組每個字節的值,第三個參數是數組的長度(字節數,不是元素個數)。其函數原型為:
void *memset(void*,int,unsigned);
  其中void*表示地址。
  例如,下面的代碼用數組做參數傳遞給標準函數memset(),以讓其將數組設置成全0:

#include<mem.h> void main() {int ia1[50]int ia2[500]memset(iai,0,50*sizeof(int))memset(ia2,0,500*sizeof(int))}

memset()的第一個實參是數組名,數組名作參數即數組作參數,它僅僅只是一個數組的起始地址而已。
  在函數memset()棧區,從返回地址往上依次為第1,2,3個參數。第1個參數中的內容是main()函數中定義的數組ia1的起始地址。第2個參數是給數組設置的值(0),第3個參數是數組的長度(50*2)。函數返回時,main()函數的數組中內容全置為0。

std::memset(&v2x_message_, 0, sizeof(v2x_message_));memset 可以使用這種方式直接把結構體v2x_message_中的所有變量都賦值為0.

但是很多時候,我們不能這么干,當某結構體A從上游發來,其中只有一部分變量沒有初始化,我們必須只對沒有初始化的值進行分別初始化,不能像這樣直接全部初始化為0。

所以std::memset(&v2x_message_, 0, sizeof(v2x_message_))這種方式一般只在最初初始化的時候使用,或者復位清零時使用,只要不是這兩種情況,就不要這么使用。

總結

以上是生活随笔為你收集整理的【c++】10. memset()、【strcpy_s()、memcpy_s()】、【strcpy(),memcpy()】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色精品 | 美乳在线播放 | 波多野结衣网址 | 亚洲av无码一区二区三区在线播放 | 美国黄色一级视频 | 成人宗合网 | 一级黄色小视频 | 一区二区在线不卡 | 国产成人精品一区二区三区网站观看 | 一区二区三区四区欧美 | 性――交――性――乱 | 桃色91| 涩涩涩av | 色狠久| 日韩中文字幕视频在线观看 | 草草在线观看视频 | 欧美成人tv | aaaaa级少妇高潮大片免费看 | 中文字幕高清在线免费播放 | 欧美日韩一级大片 | 男人的天堂一区二区 | 免费一级做a爰片久久毛片潮 | 美国美女黄色片 | 超碰伊人网| 亚洲欧美日韩专区 | 久久久久久九九九九九 | 成人污视频 | 国产一级片网址 | 久草视频免费在线播放 | 美国毛片网站 | www.成人av.com | 亚州久久久 | 综合精品久久久 | 国产自偷自拍视频 | 日本一区二区三区在线视频 | 亚洲一二三区在线 | 嫩草私人影院 | 日日舔夜夜操 | 亚洲成人h | 亚洲www视频 | 日韩欧美一区二区一幕 | 91亚洲高清 | 日本一级吃奶淫片免费 | 交做爰xxxⅹ性爽 | 成人免费小视频 | 国产不卡一区二区视频 | 麻豆视频传媒 | 情侣av | 亚洲丁香色| cao在线视频 | 国产精品伦一区二区三级古装电影 | 欧美hdse| 日韩av无码一区二区三区 | 欧美老熟 | 播放黄色一级片 | 在线一区二区三区视频 | 一二三区在线观看 | h网站在线观看 | 中文字幕色图 | 2019天天干天天操 | 久久久久久高清 | 欧日韩精品| a级片在线观看 | 日本一区二区欧美 | 亚洲视频黄 | 高清无码一区二区在线观看吞精 | 精品黄色av| 精品一久久 | 国产嫩草在线 | 天天色综合图片 | 久久r精品| 亚洲啪av永久无码精品放毛片 | 瑟瑟久久 | 中文字幕日韩一区二区三区 | 青青草自拍偷拍 | 亚洲高清精品视频 | 紧身裙女教师三上悠亚红杏 | 欧美xxxxav| 欧美乱大交xxxxx | 91在线视频 | 亚洲啊v | 日韩福利一区二区三区 | 亚洲资源av | 波多野结衣中文字幕一区 | 亚洲国产精品午夜久久久 | 日日涩 | 污片在线免费看 | 国产精品亚洲欧美在线播放 | 日日射日日操 | 在线综合色 | a级一片| 中文字幕www | 午夜日韩欧美 | 国产一区二区三区福利 | 欧日韩一区二区三区 | 91高清在线免费观看 | 久久精品噜噜噜成人88aⅴ | 亚洲天堂男人天堂 | 久久国产福利一区 |