<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-295  評論-26  文章-1  trackbacks-0
    1.程序段:程序段為程序代碼在內(nèi)存中的映射.一個程序可以在內(nèi)存中多有個副本.
    2.初始化過的數(shù)據(jù):在程序運行值初已經(jīng)對變量進行初始化的
    3.未初始化過的數(shù)據(jù):在程序運行初未對變量進行初始化的數(shù)據(jù)
    4.堆(stack):存儲局部,臨時變量,在程序塊開始時自動分配內(nèi)存,結(jié)束時自動釋放內(nèi)存.存儲函數(shù)的返回指針.
    5.棧(heap):存儲動態(tài)內(nèi)存分配,需要程序員手工分配,手工釋放.
    ?

    # include <stdio.h>

    int g1=0, g2=0, g3=0;

    intmax(int i)
    {
    ????int m1=0,m2,m3=0,*p_max;
    ????static n1_max=0,n2_max,n3_max=0;
    ????p_max =(int*)malloc(10);
    ????printf("打印max程序地址\n");
    ????printf("in max: 0x%08x\n\n",max);
    ????printf("打印max傳入?yún)?shù)地址\n");
    ????printf("in max: 0x%08x\n\n",&i);
    ????printf("打印max函數(shù)中靜態(tài)變量地址\n");
    ????printf("0x%08x\n",&n1_max);//打印各本地變量的內(nèi)存地址
    ????printf("0x%08x\n",&n2_max);
    ????printf("0x%08x\n\n",&n3_max);
    ????printf("打印max函數(shù)中局部變量地址\n");
    ????printf("0x%08x\n",&m1);//打印各本地變量的內(nèi)存地址
    ????printf("0x%08x\n",&m2);
    ????printf("0x%08x\n\n",&m3);
    ????printf("打印max函數(shù)中malloc分配地址\n");
    ????printf("0x%08x\n\n",p_max);//打印各本地變量的內(nèi)存地址

    ????if(i)return 1;
    ????elsereturn 0;
    }

    int main(int argc,char**argv)
    {
    staticint s1=0, s2, s3=0;
    int v1=0, v2, v3=0;
    int*p;????
    p =(int*)malloc(10);

    printf("打印各全局變量(已初始化)的內(nèi)存地址\n");
    printf("0x%08x\n",&g1);//打印各全局變量的內(nèi)存地址
    printf("0x%08x\n",&g2);
    printf("0x%08x\n\n",&g3);
    printf("======================\n");
    printf("打印程序初始程序main地址\n");
    printf("main: 0x%08x\n\n", main);
    printf("打印主參地址\n");
    printf("argv: 0x%08x\n\n",argv);
    printf("打印各靜態(tài)變量的內(nèi)存地址\n");
    printf("0x%08x\n",&s1);//打印各靜態(tài)變量的內(nèi)存地址
    printf("0x%08x\n",&s2);
    printf("0x%08x\n\n",&s3);
    printf("打印各局部變量的內(nèi)存地址\n");
    printf("0x%08x\n",&v1);//打印各本地變量的內(nèi)存地址
    printf("0x%08x\n",&v2);
    printf("0x%08x\n\n",&v3);
    printf("打印malloc分配的堆地址\n");
    printf("malloc: 0x%08x\n\n",p);
    printf("======================\n");
    ????max(v1);
    printf("======================\n");
    printf("打印子函數(shù)起始地址\n");
    printf("max: 0x%08x\n\n",max);
    return 0;
    }

    ?

    這個程序可以大致查看整個程序在內(nèi)存中的分配情況:
    可以看出,傳入的參數(shù),局部變量,都是在棧頂分布,隨著子函數(shù)的增多而向下增長.
    函數(shù)的調(diào)用地址(函數(shù)運行代碼),全局變量,靜態(tài)變量都是在分配內(nèi)存的低部存在,而malloc分配的堆則存在于這些內(nèi)存之上,并向上生長



    大盤預測 國富論
    posted on 2009-03-10 15:40 華夢行 閱讀(221) 評論(0)  編輯  收藏 所屬分類: C
    主站蜘蛛池模板: 久久九九久精品国产免费直播| 日本亚洲免费无线码 | 亚洲av无码无在线观看红杏| 污视频网站在线免费看| 又大又黄又粗又爽的免费视频| 亚洲av中文无码乱人伦在线观看| 免费观看毛片视频| 亚洲AV无码国产精品永久一区| 国产精品酒店视频免费看| 丰满亚洲大尺度无码无码专线| 国产成人免费ā片在线观看| 免费无码专区毛片高潮喷水 | 免费阿v网站在线观看g| 亚洲人成图片网站| 国产大片51精品免费观看| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 一级A毛片免费观看久久精品| 在线观看亚洲成人| 中文字幕无码免费久久| 亚洲狠狠狠一区二区三区| 成年人免费视频观看| 黄色片网站在线免费观看| 国产美女亚洲精品久久久综合| 最近中文字幕免费完整| 亚洲欧美日韩中文无线码 | 亚洲卡一卡2卡三卡4卡无卡三| 久久久久久精品成人免费图片| 亚洲欧美自偷自拍另类视| 亚洲精品成人网久久久久久| 日韩免费电影网址| 亚洲中文无码永久免费| 亚洲国产成人精品久久久国产成人一区二区三区综 | 成人免费无码精品国产电影| 亚洲黄片手机免费观看| 亚洲天堂一区二区三区| 无码不卡亚洲成?人片| 114级毛片免费观看| 香港特级三A毛片免费观看| 亚洲午夜未满十八勿入| 国产网站免费观看| 日韩精品久久久久久免费 |