新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 程序的內存分配

        程序的內存分配

        作者: 時間:2016-11-27 來源:網絡 收藏

        答:一個由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

        主站蜘蛛池模板: 庆安县| 平果县| 若尔盖县| 常德市| 庄浪县| 桑植县| 巴楚县| 微山县| 贡觉县| 磴口县| 湘潭县| 渝中区| 桃园市| 即墨市| 汉源县| 邻水| 富川| 阿鲁科尔沁旗| 大姚县| 陇南市| 得荣县| 汶川县| 平顶山市| 沈丘县| 延庆县| 忻州市| 新闻| 陇川县| 长兴县| 循化| 夹江县| 甘南县| 嘉黎县| 盘锦市| 北流市| 富宁县| 黑河市| 临清市| 隆回县| 普兰县| 河东区|