国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

c/c++堆棧分布及其設置方法

2020-02-19 15:58:32
字體:
來源:轉載
供稿:網友

一個由C/C++編譯的程序占用的內存分為以下幾個部分
1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數名,局部變量的名等。其操作方式類似于數據結構中的棧。
2、堆區(heap)— 由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收。注意它與數據結構中的堆是兩回事,分配方式倒是類似于鏈表。
3、全局區(靜態區)(static)—全局變量和靜態變量的存儲是放在一塊的,初始化的全局變量和靜態變量在一塊區域, 未初始化的全局變量和未初始化的靜態變量在相鄰的另一塊區域。程序結束后由系統釋放。
4、文字常量區—常量字符串就是放在這里的,程序結束后由系統釋放 。
5、程序代碼區— 存放函數體的二進制代碼。


int a = 0;//全局初始化區
char*p1;//全局未初始化區
main()
{
????intb;//棧
????chars[] = "abc";//棧
????char*p2;//棧
????char*p3 = "123456";//123456/0在常量區,p3在棧上。
????static int c =0;//全局(靜態)初始化區
????p1 = (char*)malloc(10);
????p2 = (char*)malloc(20);//分配得來的10和20字節的區域就在堆區。
}

strcpy(p1, "123456"); 123456/0放在常量區,編譯器可能會將它與p3所指向的”123456"優化成一個地方。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邓州市| 临泽县| 富平县| 遂溪县| 双鸭山市| 大兴区| 津市市| 丽水市| 科尔| 抚松县| 遂宁市| 勐海县| 家居| 舟曲县| 杭锦后旗| 平顺县| 会东县| 东山县| 吐鲁番市| 左贡县| 本溪市| 清原| 嘉定区| 临夏县| 伊通| 乌拉特前旗| 惠来县| 巴马| 西藏| 时尚| 奉节县| 黄冈市| 古田县| 乌拉特后旗| 东兴市| 五莲县| 南丹县| 新安县| 曲阳县| 松江区| 宜都市|