真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

動態(tài)內(nèi)存開辟+柔性數(shù)組-創(chuàng)新互聯(lián)

C/C++中程序內(nèi)存區(qū)域劃分

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供徐州網(wǎng)站建設(shè)、徐州做網(wǎng)站、徐州網(wǎng)站設(shè)計、徐州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、徐州企業(yè)網(wǎng)站模板建站服務(wù),十余年徐州做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

(數(shù)據(jù)段就是靜態(tài)區(qū))

C/C++程序內(nèi)存分配的幾個區(qū)域:

1.棧區(qū) (stack): 在執(zhí)行函數(shù)時,函數(shù)內(nèi)局部變量的存儲單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時這些存儲單元自動被釋放。棧內(nèi)存分配運算內(nèi)置于處理器的指令集中,效率很高,但是分配的內(nèi)存容量有限。 棧區(qū)主要存放運行函數(shù)而分配的局部變量、函數(shù)參數(shù)、返回數(shù)據(jù)、返回地址等。
2.堆區(qū)(heap):一般由程序員分配釋放若程序員不釋放,程序結(jié)束時可能由OS(operate system)回收。分配方式類似于鏈表。
3.數(shù)據(jù)段(靜態(tài)區(qū))(static) 存放全局變量、靜態(tài)數(shù)據(jù)。程序結(jié)束后由系統(tǒng)釋放4.代碼段:存放函數(shù)體(類成員函數(shù)和全局函數(shù))的二進(jìn)制代碼。


示例:(兩種寫法)

柔性數(shù)組的特點

1.結(jié)構(gòu)中的柔性數(shù)組成員前面必須至少一個其他成員

2.sizeof 返回的這種結(jié)構(gòu)大小不包括柔性數(shù)組的內(nèi)存。
3.包含柔性數(shù)組成員的結(jié)構(gòu)用malloc 0函數(shù)進(jìn)行內(nèi)存的動態(tài)分配,并且分配的內(nèi)存應(yīng)該大于結(jié)構(gòu)的大小,以適應(yīng)柔性數(shù)組的預(yù)期大小。

示例:

形式1:

形式2:

上述代碼1和代碼2可以完成同樣的功能,但是方法1(柔性數(shù)組)的實現(xiàn)有兩個好處

第一個好處是:方便內(nèi)存釋放
如果我們的代碼是在一個給別人用的函數(shù)中,你在里面做了二次內(nèi)存分配,并把整個結(jié)構(gòu)體返回給用戶。用戶調(diào)用free可以釋放結(jié)構(gòu)體,但是用戶并不知道這個結(jié)構(gòu)體內(nèi)的成員也需要free,所以你不能指望用戶來發(fā)現(xiàn)這個事。所以,如果我們把結(jié)構(gòu)體的內(nèi)存以及其成員要的內(nèi)存一次性分配好了,并返回給用戶一個結(jié)構(gòu)體指針,用戶做一次free就可以把所有的內(nèi)存也給釋放掉
第二個好處是:這樣有利于訪問速度
連續(xù)的內(nèi)存有益于提高訪問速度,也有益于減少內(nèi)存碎片。(其實,我個人覺得也沒多高了,反正你跑不了要用做偏移量的加法來尋址)

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站標(biāo)題:動態(tài)內(nèi)存開辟+柔性數(shù)組-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://weahome.cn/article/dedjoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部