国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

柔性數(shù)組知識點

這篇具有很好參考價值的文章主要介紹了柔性數(shù)組知識點。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

什么是柔性數(shù)組

什么是柔性數(shù)組?柔性數(shù)組其實也是動態(tài)內(nèi)存管理部分的內(nèi)容。這節(jié)主要來復(fù)習(xí)柔性數(shù)組的知識點。?

當(dāng)結(jié)構(gòu)體的最后一個成員為數(shù)組, 且這個數(shù)組的大小未確定時, 我們就稱它是柔性數(shù)組。

如:

struct stu

{

? ? ? ? char name[20];

? ? ? ? int age;

? ? ? ? char adress[];

}

這里的adress就是一個柔性數(shù)組。 (寫成char adress[0] 可能報錯)

柔性數(shù)組的特點?

特點1. 柔性數(shù)組成員之前必須有一個其他成員。?

特點2. 進(jìn)行結(jié)構(gòu)體大小計算時不包含柔性數(shù)組成員的大小。如:
?

struct a

{

? ? ? ? int i;

? ? ? ? int a[];

}

?結(jié)構(gòu)體a的大小是4,沒有計算a的大小。?

柔性數(shù)組的使用

typedef struct a

{

? ? ? ? int i;

? ? ? ? int price[];

}type_a;

int main()

{

? ? ? ? type_a* tmp = (type_a*)malloc(sizeof(type_a) + sizeof(int) * 10); //這里的第一個sizeof是計算? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//的第一個成員i的大小,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//+后面的計算的是為prince? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//這個柔性數(shù)組開辟的空間

? ? ? ? for(int j?= 0; j?< tmp->i;? j++)

????????{

? ? ? ? ? ? ? ? tmp->price[ j ] = j;? ? ? ??

????????}

? ? ? ? free(tmp);

????????return 0;

}

柔性數(shù)組使用的好處

好處1.

通過上面的使用我們可以發(fā)現(xiàn), 我們使用柔性數(shù)組時,是定義一個結(jié)構(gòu)體指針, 然后通過動態(tài)內(nèi)存分配直接申請一塊大的內(nèi)存。 這些內(nèi)存顯然是連續(xù)的。 而柔性數(shù)組的大小也隨著分配確定了下來一起成為一個確定的結(jié)構(gòu)體。 而后續(xù)當(dāng)我們完成使用后, 想要釋放空間時, 我們只需要通過那個結(jié)構(gòu)體指針來釋放掉這塊空間就好。?

但是如果我們不使用柔性數(shù)組, 而是把柔性數(shù)組改成一個指針呢。我們會怎么做, 為了達(dá)成上面的效果, 我們會通過動態(tài)內(nèi)存分配申請一大塊內(nèi)存, 將這塊內(nèi)存給給這個指針。 但是, 這里就有了一個問題,那就是這個指針?biāo)赶虻膬?nèi)存空間和結(jié)構(gòu)體的內(nèi)存空間不是連續(xù)的(隨即開辟, 有可能連續(xù), 但是幾率太?。_@樣的話, 假如我們通過結(jié)構(gòu)體指針釋放結(jié)構(gòu)體內(nèi)存時, 那個我們?yōu)榻Y(jié)構(gòu)體的成員指針開辟的空間就泄露了。 出現(xiàn)問題。 這就是二次分配問題需要注意的地方。 我們要先釋放成員指針指向的內(nèi)存空間。 再釋放結(jié)構(gòu)體內(nèi)存空間。?

用戶使用的時候有時候是不知道具體的代碼是怎么實現(xiàn)的。 所以柔性數(shù)組可以很好的規(guī)避二次分配出現(xiàn)的問題。

好處2.使用柔性數(shù)組因為空間是連續(xù)的, 所以能加快程序運行速度。文章來源地址http://www.zghlxwxcb.cn/news/detail-836099.html

到了這里,關(guān)于柔性數(shù)組知識點的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • MATLAB知識點:isempty函數(shù)(★★★★☆)判斷數(shù)組是否為空

    MATLAB知識點:isempty函數(shù)(★★★★☆)判斷數(shù)組是否為空

    ?講解視頻:可以在bilibili搜索《MATLAB教程新手入門篇——數(shù)學(xué)建模清風(fēng)主講》。? MATLAB教程新手入門篇(數(shù)學(xué)建模清風(fēng)主講,適合零基礎(chǔ)同學(xué)觀看)_嗶哩嗶哩_bilibili 節(jié)選自第3章:課后習(xí)題講解中拓展的函數(shù) 在講解第三章課后習(xí)題的過程中,我給大家拓展了一些講義中沒有

    2024年04月22日
    瀏覽(23)
  • C語言知識點匯總

    C語言知識點匯總

    C語言知識點保姆級總結(jié),這不得進(jìn)你的收藏夾吃灰?! 拖了很久的C語言所學(xué)知識的簡單小結(jié),內(nèi)容有點多,第一次總結(jié)也可能有錯誤或者不全面,歡迎隨時補(bǔ)充說明! ? 用不同數(shù)據(jù)類型所定義的變量所占空間大小不一樣,定義的變量不是保存于數(shù)據(jù)類型中,而是因為只有

    2024年01月23日
    瀏覽(26)
  • [知識點整理]中科院/國科大 自然語言處理nlp 期末考試知識點整理

    [知識點整理]中科院/國科大 自然語言處理nlp 期末考試知識點整理

    本文為2022秋網(wǎng)安學(xué)院的自然語言處理課程期末復(fù)習(xí)知識點整理,水平有限,整理的答案可能有錯誤或遺漏,歡迎大家指正。 文章的第二部分內(nèi)容參考了學(xué)校學(xué)姐的文章,文章寫的很好,大家可以關(guān)注她: (133條消息) 【一起入門NLP】中科院自然語言處理期末考試*總復(fù)習(xí)*:考

    2024年02月09日
    瀏覽(35)
  • Js水幾個基礎(chǔ)知識點:數(shù)組的操作,字符串和數(shù)組之間的互轉(zhuǎn),持續(xù)補(bǔ)充,歡迎關(guān)注

    一、插入 / 刪除元素: 我們就不從創(chuàng)建開始講了,那個太基礎(chǔ)了,js創(chuàng)建數(shù)組一般都直接let arr = […,…,…],有部分仁兄喜歡new Array(…, …, …),這樣看起來可能高級點,結(jié)果是一樣的哈。 這里我們直接來討論插入元素: 1、在末尾插入 / 刪除元素(push / pop,操作原數(shù)組)

    2024年02月09日
    瀏覽(50)
  • 8086 匯編語言知識點梳理

    8086 匯編語言知識點梳理

    機(jī)器語言是機(jī)器指令的集合 機(jī)器指令是一臺機(jī)器可以正確執(zhí)行的命令 機(jī)器指令由一串二進(jìn)制數(shù)表示 匯編語言的主體是匯編指令 匯編指令是機(jī)器指令便于記憶的書寫格式 匯編指令是機(jī)器指令的 助記符 匯編指令:機(jī)器碼的助記符,有對應(yīng)的機(jī)器碼 偽指令::沒有對應(yīng)的機(jī)器

    2024年02月08日
    瀏覽(56)
  • 計算機(jī)語言知識點梳理

    python是一門強(qiáng)類型、動態(tài)型、解釋型語言語言 JavaScript是一門弱類型、動態(tài)性、解釋型語言 typescript是一門強(qiáng)類型、靜態(tài)型、編譯型語言 Java是一門強(qiáng)類型、靜態(tài)型、編譯型語言 變量大小寫區(qū)分 html css sql java javascript python typescript c 弱類型語言和強(qiáng)類型語言 強(qiáng)類型語言也稱為強(qiáng)

    2024年02月09日
    瀏覽(28)
  • 【C語言】指針知識點筆記(2)

    【C語言】指針知識點筆記(2)

    目錄 一、野指針 二、assert斷言 三、指針的使用和傳址調(diào)用 四、數(shù)組名的理解 五、使用指針訪問數(shù)組

    2024年01月18日
    瀏覽(23)
  • 單片機(jī)----匯編語言入門知識點

    單片機(jī)----匯編語言入門知識點

    目錄 匯編語句的格式 匯編語句的兩個基本語句 子程序的調(diào)用 查表程序設(shè)計 1.x和y均為單字節(jié)數(shù)的查表程序設(shè)計 2.x為單字節(jié)數(shù)y為雙字節(jié)數(shù)的查表程序設(shè)計 3.x和y均為雙字節(jié)數(shù)的查表程序設(shè)計 分支轉(zhuǎn)移程序設(shè)計 1.單分支選擇結(jié)構(gòu) 2.多分支選擇結(jié)構(gòu) 循環(huán)程序設(shè)計 (1) 計數(shù)循環(huán)控

    2024年04月28日
    瀏覽(22)
  • 【詳解】C語言冷門知識點之--位段

    【詳解】C語言冷門知識點之--位段

    下面是維基百科對位段的解釋: ??位段(或稱“位域”,Bit field)為一種數(shù)據(jù)結(jié)構(gòu),可以把數(shù)據(jù)以位的形式緊湊的儲存,并允許程序員對此結(jié)構(gòu)的位進(jìn)行操作。這種數(shù)據(jù)結(jié)構(gòu)的好處: 可以使數(shù)據(jù)單元節(jié)省儲存空間,當(dāng)程序需要成千上萬個數(shù)據(jù)單元時,這種方法就顯得尤為重

    2024年02月16日
    瀏覽(44)
  • C++入門知識點——解決C語言不足

    C++入門知識點——解決C語言不足

    ????????????????????????Take your time ! ???????????????????????? ??個人主頁:??????大魔王?????? ??所屬專欄:??魔王的修煉之路–C++?? 如果你覺得這篇文章對你有幫助,請在文章結(jié)尾處留下你的 點贊 ??和 關(guān)注 ??,支持一下博主

    2024年02月12日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包