linux c程序內存分佈

詳細參見: csdn:http://blog.csdn.net/chenyiming_1990/article/details/9476181

           開源中國:http://my.oschina.net/pollybl1255/blog/140323


/*高地址
 *  
 *      棧    局部變量(向下增長)
 *      堆    動態申請內存(向上增長)
 *      bss   未初始話全局變量(初始化爲0)   
 *      
 *      data  只讀數據段 (已始化全局變量,靜態變量,常量)
 *      code  只讀代碼段
 *低地址
 * */

 #include <stdlib.h>
 #include <stdio.h>
 /*常量*/
 const int ca = 10 ;//全局常量 data區

 static sa;//靜態,data區
 int a;//全局未初始化 bss 區
 int b = 4;//全局初始化 data區
 
 /*常量*/
 const int ca = 10 ;//全局常量 data區
 
 void func1(); //子函數,代碼區
 void func2();//子函數,代碼區
 int main(void)
 {
     /*申請一塊內存  堆*/
     int *p = NULL;//棧
     p = (int *)malloc(sizeof(int));
 
     *p = 5;
     char *p1 = "hello world";//data區
     char p2[] = "hello world";//棧區
     /*局部變量*/
     int aa;
 
     /*棧區*/
     printf("***********棧區************\n");
     printf("局部變量:%p\n",&aa);
     aa = 5;
     printf("局部變量:%p\n",aa);
     printf("p2:%p\n",p2);
 
     printf("\n\n");
     /*堆區*/
     printf("*********堆區**************:\n");
     printf("動態內存區:%p\n",&p);
     printf("動態內存區:%p\n",p);
 
     /*非初始化數據段*/
     printf("\n\n");
     printf("*********bss 區************:\n");
     printf("非初始化全局變量:%p\n",&a);
     printf("\n\n");
 
     /*只讀區*/
     printf("********only read 只讀區********\n");
     printf("data 段:\n");
     printf("全局初始化變量:%p\n",&b);
 
     printf("p1:%p\n",p1);
     printf("常量:%p\n",&ca);
     printf("靜態變量:%p\n",&sa);
 
     printf("\n\n");
     printf("代碼段:\nmain地址:%p\n",main);
     printf("子函數2:%p\n",func2);
     printf("子函數1:%p\n",func1);
 }
 
 void func1()
 {
     printf("子函數\n");
 }
 
 void func2()
 {
     printf("子函數\n");
 }

結果:

***********棧區************
局部變量:0xbfca4bb8
局部變量:0x5
p2:0xbfca4bbc


*********堆區**************:
動態內存區:0xbfca4bc8
動態內存區:0x9c34008


*********bss 區************:
非初始化全局變量:0x8049a00


********only read 只讀區********
data 段:
全局初始化變量:0x80499f0
p1:0x80486e8
常量:0x80486e4
靜態變量:0x80499fc


代碼段:
main地址:0x8048424
子函數2:0x804860a
子函數1:0x80485f6

附上圖片,轉載自:http://my.oschina.net/pollybl1255/blog/140323

wKiom1URATrQ3TIwAADcQadlYbA807.jpg

wKiom1URATvDa5wvAADs_p-tgMg173.jpg

wKioL1URAoPiQwKxAADcQadlYbA448.jpg

wKiom1URAVKzShtuAADs_p-tgMg431.jpg



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章