C/C++程序內存模型
一個由C/C++編譯的程序佔用的內存分爲以下幾個部分
1、棧區(stack)— 由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。其操作方式類似於數據結構中的棧。
2、堆區(heap) — 一般由程序員分配釋放,若程序員不釋放,程序結束時可能由OS回收 。注意它與數據結構中的堆是兩回事。
3、全局區(靜態區)(static)—,全局變量和靜態變量的存儲是放在一塊的,初始化的全局變量和靜態變量在一塊區域(.data),未初始化的全局變量和未初始化的靜態變量在相鄰的另一塊區域(.bss)。 - 程序結束後由系統釋放。
4、文字常量區 —常量字符串就是放在這裏的(.rodata)。 程序結束後由系統釋放。
5、程序代碼區—存放函數體的二進制代碼(.text)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
信號量問題----父母子女四人喫水果
hu7324829
2020-07-08 11:13:17
書店管理系統---不完善
KuseBear
2020-07-08 11:07:33
MCU初始化流程——從上電到main()之間
說明: 以下介紹示例的MCU地址空間如下: ROM空間爲:0x0000 0000 – 0x0000 8000 RAM空間爲:0x2000 0000 – 0x2000 2000
jltsun
2020-07-08 11:00:06
求1+2+3+...+n,要求不能使用乘除法,for,while,if,else,switch,case等關鍵字以及條件判斷語句
Wen_de_ll
2020-07-08 10:41:26
c++程序入門(二)——指針代碼舉例
zhangying_496
2020-07-08 10:38:18
Open Supervised Device Protocol (OSDP) 總結
xiyuan255
2020-07-08 10:33:42
STM32中enumeration特殊使用方法
STM32中enumeration特殊使用方法 定義如下: /*! * STM32 Pin Names */ #define MCU
yanlaifan
2020-07-08 07:48:26
C語言之變量內存體現(VS編譯器)
吃数据的猴子
2020-07-08 06:06:01
數據調度平臺系統二大種類及其實現方法與流程
taskctl调度工具
2020-07-08 04:22:11
etl作業調度工具必備的10個功能屬性
taskctl调度工具
2020-07-08 03:42:10
PAT A1041. Be Unique (20)
jackiewoo_
2020-07-08 02:19:27
32位和64位與虛擬地址之間和字節數的問題
dreamofprogramming
2020-07-08 01:47:23
內存、句柄泄露檢測與調試
蓝风910
2020-07-08 07:15:25