验证C语言内存分配

#include <stdio.h>
#include <stdlib.h>

static int a;//全局静态变量(静态区)
char b[2];//全局普通变量(静态区
char *s = "abcdefg";//常量区

void test()
{
     static int c;//局部静态变量(静态区
     int d;//局部普通变量(栈区

     printf("\nLocal variables:\n");
     printf("c    = 0x%.8x\n", c);
     printf("d    = 0x%.8x\n", b);
     printf("&c   = %p\n", &c);
     printf("&d   = %p\n", &d);
}

int main(int agvc, char* argv[])
{
     char *p;

     if ((p = (char*)malloc(10)) <= 0)
          return 0;//no memory in 堆区

     test();

     printf("\nGloble variables:\n");
     printf("a    = 0x%.8x\n", a);
     printf("b[0] = 0x%.8x\n", b[0]);
     printf("b[1] = 0x%.8x\n", b[1]);
     printf("s    = 0x%s\n", s);
     printf("&a   = %p\n", &a);
     printf("&b[0]= %p\n", &b[0]);
     printf("&b[1]= %p\n", &b[1]);
     printf("&s = %p\n", s);
     printf("&p = %p\n", p);

     return 0;
}



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值