进程地址空间(二)

#include   < iostream >
#include   < iomanip >
#include   < stdlib . h >
using   namespace   std;

#define   WIDTH   40

int   BSS_global_uninit_a;
int   BSS_global_uninit_b;

int   static   BSS_global_uninit_static_a;  
int   static   BSS_global_uninit_static_b;

int   DS_global_init_a   =   1 ;
int   DS_global_init_b   =   1 ;

int   DS_global_init_static_a   =   1 ;  
int   DS_global_init_static_b   =   1 ;  

int   const   TEXT_global_init_const_a   =   1 ;
int   const   TEXT_global_init_const_b   =   1 ;

int   const   static   TEXT_global_init_const_static_a   =   1 ;
int   const   static   TEXT_global_init_const_static_b   =   1 ;

void   fun( int   stack_fun_para)
{
    int   stack_fun_a   =   1 ;
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &stack_fun_para "   < <   & stack_fun_para   < <   endl;      
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &stack_fun_a "   < <   & stack_fun_a   < <   endl;      
}

int   main()
{
    int   stack_a   =   1 ;
    int   stack_b   =   1 ;
   
    int   static   DS_main_static_a   =   1 ;  
    int   static   DS_main_static_b   =   1 ;

    int   * heap_a   =   ( int * )malloc( 4 );
    int   * heap_b   =   ( int * )malloc( 4 );

    cout   < <   " **********STACK************* "   < <   endl;
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &stack_a "   < <   & stack_a   < <   endl;
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &stack_b "   < <   & stack_b   < <   endl;
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &heap_a "   < <   & heap_a   < <   endl;    
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &heap_b "   < <   & heap_b   < <   endl;    
    fun( 1 );

    cout   < <   " **********HEAP************* "   < <   endl;
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " heap_a "   < <   heap_a   < <   endl;    
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " heap_b "   < <   heap_b   < <   endl;    

    cout   < <   " **********BSS************* "   < <   endl;
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &BSS_global_uninit_static_a "   < <   & BSS_global_uninit_static_a   < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &BSS_global_uninit_static_b "   < <   & BSS_global_uninit_static_b   < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &BSS_global_uninit_a "   < <   & BSS_global_uninit_a   < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &BSS_global_uninit_b "   < <   & BSS_global_uninit_b < <   endl;          

    cout   < <   " **********DS************* "   < <   endl;
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &DS_global_init_a "   < <   & DS_global_init_a < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &DS_global_init_b "   < <   & DS_global_init_b   < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &DS_global_init_static_a "   < <   & DS_global_init_static_a   < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &DS_global_init_static_b "   < <   & DS_global_init_static_b   < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &DS_main_static_a "   < <   & DS_main_static_a   < <   endl;
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &DS_main_static_b "   < <   & DS_main_static_b   < <   endl;

    cout   < <   " **********TEXT*********** "   < <   endl;
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &TEXT_global_init_const_a "   < <   & TEXT_global_init_const_a   < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &TEXT_global_init_const_b "   < <   & TEXT_global_init_const_b < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &TEXT_global_init_const_static_a "   < <   & TEXT_global_init_const_static_a   < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &TEXT_global_init_const_static_b "   < <   & TEXT_global_init_const_static_b   < <   endl;          
    cout   < <   std : : left   < <   setw(WIDTH)   < <   " &string "   < <   & ( " hello " )   < <   endl;

    return   0 ;
}

 

 

 

root@ubuntu:~# ./a.out
**********STACK*************
&stack_a                                0xbfda54ec
&stack_b                                0xbfda54e8
&heap_a                                 0xbfda54e4
&heap_b                                 0xbfda54e0
&stack_fun_para                         0xbfda5470
&stack_fun_a                            0xbfda545c
**********HEAP*************
heap_a                                  0x93ad008
heap_b                                  0x93ad018
**********BSS*************
&BSS_global_uninit_static_a             0x804b100
&BSS_global_uninit_static_b             0x804b104
&BSS_global_uninit_a                    0x804b0f4
&BSS_global_uninit_b                    0x804b0f8
**********DS*************
&DS_global_init_a                       0x804b03c
&DS_global_init_b                       0x804b040
&DS_global_init_static_a                0x804b044
&DS_global_init_static_b                0x804b048
&DS_main_static_a                       0x804b04c
&DS_main_static_b                       0x804b050
**********TEXT***********
&TEXT_global_init_const_a               0x804967c
&TEXT_global_init_const_b               0x8049680
&TEXT_global_init_const_static_a        0x8049684
&TEXT_global_init_const_static_b        0x8049688
&string  


你可能感兴趣的:(进程)