答:一個由c/C++編譯的程序占用的內存分為以下幾個部分
1、棧區(stack)—由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧。
2、堆區(heap)—一般由程序員分配釋放,若程序員不釋放,程序結束時可能由OS回收。注意它與數據結構中的堆是兩回事,分配方式倒是類似于鏈表,呵呵。
3、全局區(靜態區)(static)—全局變量和靜態變量的存儲是放在一塊的,初始化的全局變量和靜態變量在一塊區域,未初始化的全局變量和未初始化的靜態變量在相鄰的另一塊區域。程序結束后由系統釋放。
4、文字常量區—常量字符串就是放在這里的。程序結束后由系統釋放。
5、程序代碼區—存放函數體的二進制代碼
本文引用地址:http://www.104case.com/article/201611/322087.htm
例子程序
這是一個前輩寫的,非常詳細
//main.cpp
inta=0;//全局初始化區
char*p1;//全局未初始化區
main()
{
intb;棧
chars[]="abc";//棧
char*p2;//棧
char*p3="123456";//123456
主站蜘蛛池模板:
庆安县|
平果县|
若尔盖县|
常德市|
庄浪县|
桑植县|
巴楚县|
微山县|
贡觉县|
磴口县|
湘潭县|
渝中区|
桃园市|
即墨市|
汉源县|
邻水|
富川|
阿鲁科尔沁旗|
大姚县|
陇南市|
得荣县|
汶川县|
平顶山市|
沈丘县|
延庆县|
忻州市|
新闻|
陇川县|
长兴县|
循化|
夹江县|
甘南县|
嘉黎县|
盘锦市|
北流市|
富宁县|
黑河市|
临清市|
隆回县|
普兰县|
河东区|