在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

變長數據包數據結構定義

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-09-27 15:08 ? 次閱讀

變長數據包

定長數組使用方便, 但是卻浪費空間, 指針形式只多使用了一個指針的空間, 不會造成大量空間分浪費, 但是使用起來需要多次分配, 多次釋放, 那么有沒有一種實現方式能夠既不浪費空間, 又使用方便的呢?

GNU C 的0長度數組(變長數組/柔性數組)就是這樣一個擴展. 對于0長數組的這個特點,很容易構造出變成結構體,如緩沖區,數據包等等:

  • 數據結構定義
//  0長度數組
struct zero_buffer
{
    int     len;
    char    data[0];
};
  • 數據結構大小

這樣的變長數組常用于網絡通信中構造不定長數據包, 不會浪費空間浪費網絡流量, 因為char data[0]; 只是個數組名, 是不占用存儲空間的,

sizeof(struct zero_buffer) = sizeof(int)

  • 數據包創建

我們使用的時候, 只需要開辟一次空間即可:

///  開辟
    if ((zbuffer = (struct zero_buffer *)malloc(sizeof(struct zero_buffer) + sizeof(char) * CURR_LENGTH)) != NULL)
    {
        zbuffer- >len = CURR_LENGTH;
        memcpy(zbuffer- >data, "Hello World", CURR_LENGTH);


        printf("%d, %sn", zbuffer- >len, zbuffer- >data);
    }
  • 釋放

釋放也是一樣的, 一次釋放即可:

///  銷毀
    free(zbuffer);
    zbuffer = NULL;
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140740
  • 數據包
    +關注

    關注

    0

    文章

    269

    瀏覽量

    24923
  • 數據結構
    +關注

    關注

    3

    文章

    573

    瀏覽量

    40643
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    不同數據結構定義代碼

    數據結構是相互之間存在一種或多種特定關系的數據元素的集合。
    的頭像 發表于 11-29 14:13 ?819次閱讀

    什么是數據結構(Data Structrue)

    的一個一個元素數據對象:具有相同特性的數據元素的集合結構數據元素之間具有的關系(聯系) 二.  數據結構
    發表于 02-09 17:17

    數據結構

    1.數據結構的概念 所謂數據結構是指由某一數據對象及該對象中所有數據成員之間的關系組成的集合。成員之間的關系有很多種,最常見的是前后件關系。 2.
    發表于 03-04 14:13

    數據結構鏈表的基本操作

    嵌入式學習基礎-數據結構鏈表的基本操作鏈表節點采用結構體的方式進行定義,下面是最基礎的定義只有一個數據data,*pNext用于指向下一個節
    發表于 12-22 08:05

    OBS邊緣節點中變長數據包突發匯聚實現

    基于光突發交換邊緣節點在組裝數據包前要采用交換陣對其進行突發匯聚,描述了交換陣常用的串行輸入輪循算法,根據邊緣節點中數據包變長突發匯聚的特點提出了變長串行輸
    發表于 04-19 19:16 ?18次下載

    網絡數據包捕獲機制研究

    網絡數據包捕獲技術,是實現入侵檢測、網絡安全審計的關鍵技術。本文改進了國外傳統的數據包捕獲函數庫Libpcap 捕獲數據包的方案。原方案在網卡捕獲到數據包后,
    發表于 09-01 10:09 ?9次下載

    基于Jpcap的數據包捕獲器的設計與實現

    本文研究了以太網數據包的捕獲機制,實現了基于JPcap的網絡數據包捕獲工具,其基本原理是通過調用Jpcap庫捕獲本地網絡上的所有數據包,然后對數據包進行協議解碼,從而可以實
    發表于 01-15 13:47 ?38次下載

    數據包過濾原理

    數據包過濾技術數據包過濾原理              數據包過濾技術是防火墻最常用的技術。對于一
    發表于 06-16 23:44 ?4755次閱讀
    <b class='flag-5'>數據包</b>過濾原理

    什么是數據包

    什么是數據包? 您在互聯網上做的一切都涉及到數據包。例如,您接收的每個網頁都以一系列數據包的形式傳入,您發送的每封電子郵件都以一系列數據包的形式傳出。以
    發表于 08-03 09:13 ?2169次閱讀

    數據結構是什么_數據結構有什么用

    數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高
    發表于 11-17 14:45 ?1.6w次閱讀
    <b class='flag-5'>數據結構</b>是什么_<b class='flag-5'>數據結構</b>有什么用

    什么是數據結構?為什么要學習數據結構數據結構的應用實例分析

    本文檔的主要內容詳細介紹的是什么是數據結構?為什么要學習數據結構數據結構的應用實例分析包括了:數據結構在串口通信當中的應用,數據結構在按鍵
    發表于 09-26 15:45 ?14次下載
    什么是<b class='flag-5'>數據結構</b>?為什么要學習<b class='flag-5'>數據結構</b>?<b class='flag-5'>數據結構</b>的應用實例分析

    網絡數據包分析軟件wireshark的基本使用

    Wireshark(前稱Ethereal)是一個網絡數據包分析軟件。網絡數據包分析軟件的功能是截取網絡數據包,并盡可能顯示出最為詳細的網絡數據包數據
    的頭像 發表于 09-29 14:48 ?3586次閱讀

    NetApp的數據結構是如何演變的

    統一數據跨分布式資源進行管理,以實現數據移動的一致性和控制,安全、可見性、保護和訪問。 本文定義數據結構及其體系結構,討論了
    發表于 08-25 17:15 ?0次下載
    NetApp的<b class='flag-5'>數據結構</b>是如何演變的

    如何使用指針數據包定義數據緩沖區

    , 只浪費了一個指針域的空間. 數據包定義 struct point_buffer{ int len; char * data ;}; 數據結構大小 考慮對齊, 那么數據結構的大小 >
    的頭像 發表于 09-27 15:01 ?666次閱讀

    I2C總線數據包結構詳解

    。以下是I2C總線數據包結構的詳解: 一、I2C總線數據包的基本組成 I2C總線上的數據傳輸以數據包為單位進行,每個
    的頭像 發表于 01-17 15:46 ?721次閱讀
    主站蜘蛛池模板: 色天使色护士 在线视频观看 | 午夜精品久久久久久91 | 国产精品视频永久免费播放 | 成人国产三级在线播放 | 日本一区二区精品88 | h在线网站| 日本a级片在线观看 | 国产成人精品曰本亚洲 | 在线观看成人网 | 老熟女一级毛片 | 午夜aa| 色噜噜成人综合网站 | 国产亚洲欧美成人久久片 | 一级毛片在线不卡直接观看 | 91大神大战丝袜美女在线观看 | 欧美xxxx色视频在线观看免费 | 欧美又粗又硬又大久久久 | 看全色黄大色大片免费久久 | 777色淫网站女女免费 | 教官的好爽好深h片段 | 亚洲一区欧美二区 | 久久99久久精品国产只有 | 亚洲黄色小说网站 | 1024国产手机视频基地 | av72成人 | 女人扒开腿让男人桶到爽 | 狠狠色噜狠狠狠狠 | 伊人伊成久久人综合网777 | 88xx成人永久免费观看 | 香港日本三级在线播放 | 久久99精品久久久久久牛牛影视 | 新版天堂8在线天堂 | 色视频在线观看网站 | 国产精品视频一区二区三区 | 天天爆操 | 中文天堂在线观看 | 黄色视奸 | 色网站在线播放 | 免费大片黄日本在线观看 | 久久夜色精品国产飘飘 | 福利影院在线 |