0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

變長數(shù)組和動態(tài)數(shù)組區(qū)別

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-09-28 15:20 ? 次閱讀

動態(tài)數(shù)組是指在聲明時,沒有確定數(shù)組大小的數(shù)組,它可以隨程序需要而重新指定大小。動態(tài)數(shù)組的內(nèi)存空間是從堆動態(tài)分配的,當程序執(zhí)行到我們編寫的分配語句時,才為其分配存儲空間。

使用動態(tài)數(shù)組的優(yōu)點是可以根據(jù)用戶需要,有效利用存儲空間。

inta[10];//靜態(tài)數(shù)組,在堆棧上創(chuàng)建

intn;
//C語言的malloc函數(shù)進行書寫
int*p=(int*)malloc(n*sizeof(int));

變長數(shù)組的實際意思是以變量作為長度的數(shù)組,區(qū)別于以常數(shù)作為長度的數(shù)組。英文Variable-Length Array(后續(xù)都縮寫成VLA),注意這里有一個連接號。

連接號-代表的意思是,Variable不是一個用于修飾Length的形容詞,而是一個名字名詞(即變量的意思)。

了解了正確的含義后,不難理解VLA的目的就是數(shù)組的長度是由一個變量指定的,而非常數(shù)。

總結(jié):

變長數(shù)組一般是在棧上分配,動態(tài)數(shù)組一般是在堆上分配。

變長數(shù)組在函數(shù)返回之后聲明周期就結(jié)束了,而動態(tài)數(shù)組需要手動free掉。

變長數(shù)組使用多了容易棧溢出,而且它在c11里只是可選特性,和標準 C++ 也不兼容,所以不建議過多使用。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4237

    瀏覽量

    61967
  • 動態(tài)數(shù)組
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    5945
收藏 人收藏

    評論

    相關(guān)推薦

    C語言中指針數(shù)組數(shù)組指針的區(qū)別

    指針和數(shù)組之間存在著緊密的關(guān)系。在本文中,我們將探討指針和數(shù)組的關(guān)系、指針算術(shù)和數(shù)組遍歷、多維數(shù)組與指針以及指針數(shù)組
    發(fā)表于 08-17 15:29 ?363次閱讀

    詳談數(shù)組和指針的區(qū)別與聯(lián)系

    詳談數(shù)組和指針的區(qū)別與聯(lián)系
    的頭像 發(fā)表于 06-29 15:18 ?2.2w次閱讀
    詳談<b class='flag-5'>數(shù)組</b>和指針的<b class='flag-5'>區(qū)別</b>與聯(lián)系

    指針數(shù)組數(shù)組指針的區(qū)別

    這里我們區(qū)分兩個重要的概念:指針數(shù)組、數(shù)組指針。
    的頭像 發(fā)表于 06-29 15:30 ?1.9w次閱讀
    指針<b class='flag-5'>數(shù)組</b>和<b class='flag-5'>數(shù)組</b>指針的<b class='flag-5'>區(qū)別</b>

    C語言指針和數(shù)組區(qū)別

    在C語言教程中我們使用通過數(shù)組名通過偏移和指針偏移都可以遍歷數(shù)組,那么指針和數(shù)組到底有什么區(qū)別??
    的頭像 發(fā)表于 07-18 16:29 ?1785次閱讀

    C語言可變長的數(shù)據(jù)緩存方法有嗎

    變長數(shù)組的實際意思是以變量作為長度的數(shù)組區(qū)別于以常數(shù)作為長度的數(shù)組。英文Variable-Length Array(后續(xù)都縮寫成VLA),
    發(fā)表于 08-07 17:10 ?590次閱讀

    二維數(shù)組數(shù)組指針以及指針數(shù)組

    二維數(shù)組數(shù)組指針以及指針數(shù)組
    的頭像 發(fā)表于 08-16 09:02 ?2498次閱讀

    unpacked數(shù)組和packed數(shù)組的主要區(qū)別

    unpacked數(shù)組和packed數(shù)組的主要區(qū)別是unpacked數(shù)組在物理存儲時不能保證連續(xù),而packed數(shù)組則能保證在物理上連續(xù)存儲。
    的頭像 發(fā)表于 10-18 09:13 ?2493次閱讀

    SystemVerilog動態(tài)數(shù)組的大小更改展示

    需要使用" new "操作符實例化一個動態(tài)數(shù)組,使用[]表示。在實例化過程中,會設(shè)置動態(tài)數(shù)組的大小。
    的頭像 發(fā)表于 10-21 09:43 ?1323次閱讀

    C語言中的數(shù)組空間動態(tài)開辟

    C語言中的數(shù)組空間動態(tài)開辟 在C語言中,必不可少的需要使用到數(shù)組,通常為了動態(tài)的開辟數(shù)組空間,可以使用 malloc 函數(shù),在C++中可以使
    的頭像 發(fā)表于 02-10 12:42 ?1924次閱讀

    動態(tài)數(shù)組和C++ std::vector詳解

    std::vector是C++的默認動態(tài)數(shù)組,其與array最大的區(qū)別在于vector的數(shù)組動態(tài)的,即其大小可以在運行時更改。std::v
    的頭像 發(fā)表于 07-19 11:07 ?871次閱讀

    數(shù)組的定義 什么是數(shù)組

    數(shù)組 數(shù)組是內(nèi)置類型,是一組同類型數(shù)據(jù)的集合,它是值類型,通過從0開始的下標索引訪問元素值。 在初始化后長度是固定的,無法修改其長度。當作為方法的參數(shù)傳入時將復(fù)制一份數(shù)組而不是引用同一指針。
    的頭像 發(fā)表于 10-09 09:39 ?1715次閱讀

    python列表和數(shù)組區(qū)別

    內(nèi)部實現(xiàn)、性能、操作方式等多個方面進行詳細分析,以幫助讀者更好地理解它們之間的區(qū)別和適用場景。 一、內(nèi)部實現(xiàn): 列表(List): Python中的列表是一種有序的、可變的、可包含不同類型元素的數(shù)據(jù)結(jié)構(gòu)。列表的實現(xiàn)基于動態(tài)數(shù)組,
    的頭像 發(fā)表于 11-21 15:13 ?1870次閱讀

    數(shù)組和指針不相同嗎?數(shù)組和指針有哪些區(qū)別

    數(shù)組就是指針,指針就是數(shù)組,這樣的言論在評論區(qū)看到不下于10次。
    的頭像 發(fā)表于 12-13 16:34 ?918次閱讀
    <b class='flag-5'>數(shù)組</b>和指針不相同嗎?<b class='flag-5'>數(shù)組</b>和指針有哪些<b class='flag-5'>區(qū)別</b>

    數(shù)組和鏈表有何區(qū)別

    數(shù)組和鏈表的區(qū)別,這個問題,不僅面試中經(jīng)常遇到,考研的同學(xué)也得掌握才行。
    的頭像 發(fā)表于 02-19 15:33 ?363次閱讀
    <b class='flag-5'>數(shù)組</b>和鏈表有何<b class='flag-5'>區(qū)別</b>

    數(shù)組和鏈表在內(nèi)存中的區(qū)別 數(shù)組和鏈表的優(yōu)缺點

    數(shù)組和鏈表在內(nèi)存中的區(qū)別 數(shù)組和鏈表的優(yōu)缺點? 數(shù)組和鏈表是常見的數(shù)據(jù)結(jié)構(gòu),用于組織和存儲數(shù)據(jù)。它們在內(nèi)存中的存儲方式以及優(yōu)缺點方面存在一些顯著的差異。本文將詳細探討這些差異以及它們的
    的頭像 發(fā)表于 02-21 11:30 ?647次閱讀