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

首頁 > 學院 > 開發設計 > 正文

程序的內存分配

2019-11-08 03:10:05
字體:
來源:轉載
供稿:網友
一個C/C++編譯的程序占用的內存分為:1)棧區(stack),由編譯器自動分配和釋放,存放函數的參數值,局部變量的值等,其操作方式類似于數據結構中的棧;2)堆區(heap),一般由程序員分配釋放,若程序員不釋放,程序結束時可能由OS回收。注意它與數據結構中的堆是兩回事,分配方式類似于鏈表;3)全局區(靜態區)(static),全局變量和靜態變量存放在一塊,初始化全局變量和靜態變量在一塊區域,未初始化的全局變量和未初始化的靜態變量在相鄰的另一塊區域,程序結束后由系統釋放。4)文字常量區,常量字符串就放在這里。程序結束后由系統釋放。程序代碼區,存放函數的二進制代碼。//main.cpp  int a = 0; 全局初始化區 char *p1; 全局未初始化區 main()  {  int b; 棧 char s[] = "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" 優化成一個地方。  }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福建省| 军事| 通许县| 衢州市| 孟州市| 玉溪市| 泽普县| 屏南县| 华安县| 阿合奇县| 于都县| 宜宾县| 吐鲁番市| 马边| 易门县| 仙游县| 元氏县| 绍兴县| 济南市| 泰顺县| 平山县| 垦利县| 遵义县| 马尔康县| 蓬莱市| 台州市| 泗水县| 克东县| 鸡东县| 晋中市| 咸阳市| 焉耆| 农安县| 永州市| 吉木萨尔县| 龙泉市| 开江县| 湘西| 黔江区| 邢台县| 合山市|