APUE Learning Example Source Code
guowenxue
2020-04-29 b8fb7f30f9d42d69bf25734bf0ee351809e62198
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <stdlib.h>
 
int   g_var1;
int   g_var2=20;
 
int main(int argc, char **argv)
{
    static int   s_var1;
    static int   s_var2=10;
       
    char        *str="Hello";
    char        *ptr;
 
    ptr = malloc(100);
 
    printf("[cmd args]:  argv address: %p\n", argv);
    printf("\n");
 
    printf("[ Stack]:     str address: %p\n", &str);
    printf("[ Stack]:     ptr address: %p\n", &ptr);
    printf("\n");
 
    printf("[ Heap ]:  malloc address: %p\n", ptr);
    printf("\n");
 
 
    printf("[  bss ]:  s_var1 address: %p value: %d\n", &s_var1, g_var1);
    printf("[  bss ]:  g_var1 address: %p value: %d\n", &g_var1, g_var1);
 
    printf("[ data ]:  g_var2 address: %p value: %d\n", &g_var2, g_var2);
    printf("[ data ]:  s_var2 address: %p value: %d\n", &s_var2, s_var2);
 
    printf("[rodata]: \"%s\" address: %p \n", str, str);
    printf("\n");
 
    printf("[ text ]:  main() address: %p\n", main);
    printf("\n");
 
 
    return 0;
}