版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、c語言變量存儲區(qū)2007090511:23一般認(rèn)為在c中分為這幾個(gè)存儲區(qū):1.棧--有編譯器自動分配釋放2.堆--一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時(shí)可能由OS回收3.全局區(qū)(靜態(tài)區(qū))--全局變量和靜態(tài)變量的存儲是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域,未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。程序結(jié)束釋放。4.另外還有一個(gè)專門放常量的地方。程序結(jié)束釋放在函數(shù)體中定義的變量通常是在棧上,用mallo
2、ccallocrealloc等分配內(nèi)存的函數(shù)分配得到的就是在堆上。在所有函數(shù)體外定義的是全局量,加了static修飾符后不管在哪里都存放在全局區(qū)(靜態(tài)區(qū))在所有函數(shù)體外定義的static變量表示在該文件中有效,不能extern到別的文件用,在函數(shù)體內(nèi)定義的static表示只在該函數(shù)體內(nèi)有效。另外,函數(shù)中的“adgfdf“這樣的字符串存放在常量區(qū)。比如:代碼:inta=0全局初始化區(qū)p1全局未初始化區(qū)main()intb棧s[]=“abc
3、“棧p2棧p3=“123456“123456在常量區(qū),p3在棧上。staticintc=0;全局(靜態(tài))初始化區(qū)p1=()malloc(10)p2=()malloc(20)分配得來得10和20字節(jié)的區(qū)域就在堆區(qū)。strcpy(p1“123456“)123456放在常量區(qū),編譯器可能會將它與p3所指向的“123456“優(yōu)化成一塊。還有就是函數(shù)調(diào)用時(shí)會在棧上有一系列的保留現(xiàn)場及傳遞參數(shù)的操作。棧的空間大小有限定,vc的缺省是2M。棧不夠用的
4、情況一般是程序中分配了大量數(shù)組和遞歸函數(shù)層次太深。有一點(diǎn)必須知道,當(dāng)一個(gè)函數(shù)調(diào)用完返回后它會釋放該函數(shù)中所有的??臻g。棧是由編譯器自動管理的,不用你操心。堆是動態(tài)分配內(nèi)存的,并且你可以分配使用很大的內(nèi)存。但是用不好會產(chǎn)生內(nèi)存泄漏。并且頻繁地malloc和free會產(chǎn)生內(nèi)存碎片(有點(diǎn)類似磁盤碎片),因?yàn)閏分配動態(tài)內(nèi)存時(shí)是尋找匹配的內(nèi)存的。而用棧則不會產(chǎn)生碎片。在棧上存取數(shù)據(jù)比通過指針在堆上存取數(shù)據(jù)快些。一般大家說的堆棧和棧是一樣的,就是棧
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三存儲管理動態(tài)不等長存儲資源分配算法
- 編譯預(yù)處理和動態(tài)存儲分配
- 運(yùn)行時(shí)的存儲組織與分配
- 段式存儲管理的分配與回收9
- Blackfin DSP存儲資源分配策略研究.pdf
- 便箋存儲嵌入式系統(tǒng)中多層存儲上的數(shù)據(jù)分配算法研究.pdf
- 基于數(shù)據(jù)挖掘的貨品存儲分配策略研究.pdf
- 存儲擴(kuò)展流量控制緩存分配策略研究.pdf
- 基于多參數(shù)的文件存儲分配算法研究.pdf
- c語言課程設(shè)計(jì)_存儲管理分區(qū)分配算法
- 基于信息安全的密鑰分配與密鑰存儲研究.pdf
- 內(nèi)存區(qū)劃分、內(nèi)存分配、常量存儲區(qū)、堆、棧、自由存儲區(qū)、全局區(qū)[c++][內(nèi)存管理]
- 操作系統(tǒng)課程設(shè)計(jì)---動態(tài)分區(qū)分配存儲管理
- 虛擬機(jī)在線存儲遷移資源分配技術(shù)研究.pdf
- 基于動態(tài)任務(wù)分配策略的主動存儲系統(tǒng).pdf
- 快遞站點(diǎn)貨柜存儲空間動態(tài)分配優(yōu)化研究.pdf
- 云下載系統(tǒng)的理論模型與存儲資源分配算法研究.pdf
- 電力負(fù)荷分配與電煤存儲裕度預(yù)警的研究.pdf
- 多核系統(tǒng)中便箋式存儲器的數(shù)據(jù)分配策略.pdf
- 并行數(shù)據(jù)處理中間件存儲分配策略研究.pdf
評論
0/150
提交評論