資料段:資料段通常是指用來存放程式中已初始化的全域性變數和靜態變數的一塊記憶體區域。資料段屬於靜態記憶體分配,可以分為唯讀資料段和讀寫資料段。 字串常量等,但一般都是放在唯讀資料段中 。
**段:**段通常是指用來存放程式執行**的一塊記憶體區域。這部分區域的大小在程式執行前就已經確定,並且記憶體區域通常屬於唯讀, 某些架構也允許**段為可寫,即允許修改程式。在**段中,也有可能包含一些唯讀的常數變數,例如字串常量等,但一般都是放在唯讀資料段中 。
棧區:由系統自動分配,當函式執行結束時由系統自動釋放。存放區域性變數。棧的缺點是:容量有限,當相應的區間被釋放時,區域性變數不可再使用。棧是一塊連續的區域,向低位址擴充套件,棧頂和容量是事先約定好的。
堆區:在程式的執行過程中才能分配,由程式設計師決定,編譯器在編譯時無法為他們分配空間,只有在程式執行時分配,所以被稱為動態分配。堆是不連續的區域,向高位址擴充套件。由於系統用鍊錶來描述空閒的位址空間,鍊錶的遍歷是由地位址向高位址的,故堆區是不連續的動態的儲存空間。
記憶體對映區: 將磁碟檔案的資料對映到記憶體,使用者通過修改記憶體就能修改磁碟檔案
C C 程式記憶體分配方式
1.記憶體分配方式 記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在。例如全域性變數,static變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內...
C C 的記憶體分配方式
1.從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,分配的內存在整個程式執行期間都存在且不能發生變化。2.在棧上分配。執行函式時,函式內部的區域性變數的記憶體單元都可以在棧上建立,函式執行時這些儲存單元會自動釋放。棧記憶體分配內置於處理器的指令集中,效率很高,但分配的記憶體有限。在堆上分配 動...
C C 程式的記憶體分配方式
1.記憶體分配方式 記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在。例如全域性變數,static變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內...