內存的靜態分配和動態分配有啥不同?


內存的靜態分配和動態分配區別:

1.時間不同:

 靜態分配發生在程序的編譯和鏈接的時候。

   動態分配發生在程序調入和執行的時候。

2.空間不同:

 靜態分配只能是有棧來分配(有編譯器來完成,比如定義一個局部變量 int b = 1)

   動態分配可以是堆分配(malloc分配,需要手動回收內存)或者棧分配(編譯器來完成,自動回收內存)

3.靈活度不同:

 靜態分配需要提前指定空間大小,不能再動態改變大小。

    動態分配不需要提前分配存儲空間,可以動態的調整大小。

4.生命周期不同:

  靜態分配的內存在程序一開始運行就會分配內存,直到程序結束了,內存才會被釋放。

     動態分配的內存是在程序調用函數時才被分配,函數結束了,動態內存就應該被釋放掉(別忘了手動釋放)。


免責聲明!

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



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