在進行c/c++程式設計時,程式設計師需要對記憶體的了解比較精準,經常需要操作的記憶體可分為以下幾類:
1. 棧區(stack):由編譯器自動分配和釋放,存放函式的引數值、區域性變數的值等,其操作方式類似於資料結構中的棧;
2. 堆區(heap):一般由程式設計師分配和釋放,若程式設計師不釋放,程式結束時可能由作業系統**。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶;
3. 全域性區(靜態區)(static):全域性變數和靜態變數的儲存是放在一塊,初始化的全域性變數和靜態變數在一塊區域(.data),未初始化的全域性變數和未初始化的靜態變數儲存在相鄰的另一塊區域(.bss),程式結束後由系統釋放;
4. 文字常量區:常量字串就是放在這裡(.rodata),程式結束後由系統釋放;
5. 程式**區:存放函式體的二進位制**(.text)。
記憶體的分類
記憶體分類 dram dynamic random access memory 即動態 隨機訪問儲存器 最為常見的 系統記憶體 dram 只能將資料保持很短的時間。為了保持資料,dram使用電容儲存,所以必須隔一段時間重新整理 refresh 一次,如果 儲存單元 沒有被重新整理,儲存的資訊就會丟失...
記憶體管理分類
在編寫程式過程中,程式設計師必須清楚程式記憶體的分配機制,合理進行記憶體管理,這樣才能得到高效的程式。同時,如果對c 記憶體分配基本概念不理解,使用不當,一方面浪費了寶貴的記憶體資源,降低了程式執行效率,另一方面還會造成程式中意想不到的錯誤。在c 程式中,把記憶體分為4 類,程式儲存區 靜態資料儲存...
記憶體分類總結
c c 程式設計中,經常需要操作的記憶體分為以下幾類 棧區 stack 用於存放程式臨時建立的區域性變數,如函式的引數值 區域性變數值等,由編譯器自動分配釋放。堆區 heap 一般由程式設計師申請和釋放。用於存放程序執行中被動態分配的記憶體段,大小不固定,可動態擴張或縮減。若程式設計師不釋放,程式結...