国产探花免费观看_亚洲丰满少妇自慰呻吟_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" 優化成一個地方。  }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邯郸县| 平塘县| 鄂托克前旗| 许昌县| 金溪县| 隆化县| 昭苏县| 绿春县| 临高县| 抚顺县| 泌阳县| 兰州市| 逊克县| 渭南市| 独山县| 昭觉县| 临澧县| 云阳县| 苍梧县| 嘉禾县| 霍邱县| 贵溪市| 南京市| 肥乡县| 沅陵县| 贵州省| 霍林郭勒市| 宁河县| 沅江市| 天峻县| 苏尼特右旗| 中西区| 塔城市| 景东| 亳州市| 铜鼓县| 和龙市| 勐海县| 扬州市| 涿州市| 措勤县|