動態內存與靜態內存的區別


1. 靜態內存

靜態內存是指在程序開始運行時由編譯器分配的內存,它的分配是在程序開始編譯時完成的,不占用CPU資源。

程序中的各種變量,在編譯時系統已經為其分配了所需的內存空間,當該變量在作用域內使用完畢時,系統會

自動釋放所占用的內存空間。

變量的分配與釋放,都無須程序員自行考慮。

eg:

基本類型,數組

 

2. 動態內存

用戶無法確定空間大小,或者空間太大,棧上無法分配時,會采用動態內存分配。

 

3. 區別

a) 靜態內存分配在編譯時完成,不占用CPU資源; 動態內存分配在運行時,分配與釋放都占用CPU資源。

b) 靜態內存在棧(stack)上分配; 動態內存在堆(heap)上分配。

c) 動態內存分配需要指針和引用類型支持,靜態不需要。

d) 靜態內存分配是按計划分配,由編譯器負責; 動態內存分配是按需分配,由程序員負責。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM