c程序中的内存布局

在一个c程序中,将内存分为:

  代码区:

  常量区:存放的一些常量

  静态存储区:存放全局和静态变量

  堆:

  栈:

int a = 0; //全局初始化区
char *p1; //全局未初始化区
main()
{
    int b;// 栈
    char s[] = "abc"; //就在栈上
    char *p2; //栈
    char *p3 = "123456"; //123456\0在常量区,p3在栈上,通过p3来指向常量的地址
    static int c =0; //全局(静态)初始化区
    p1 = (char *)malloc(10);  //堆
    p2 = (char *)malloc(20);  //堆
}

 

s[] = "abc"//在栈上定义一个字符数组,并给其赋值为abc

char *p3 = "123456"//定义一个指针,该指针指向123456字符窜所在的地址,123456存在在常量区

 

posted @ 2023-02-22 15:20  踏浪而来的人  阅读(26)  评论(0编辑  收藏  举报