函数运行时的内存分配

       按照内存地址高→低的顺序,函数运行时内核分别为其分配了全局区,常量区,堆,栈,代码区。下面分别讲解☞)

1/全局区0x42......(全局变量,静态变量,局部静态变量,全局静态变量,它们在进入主函数前就已经被初始化,且全局变量可以通过extern声明被跨文件调用)。

    a☞局部静态变量退出函数后再次进入时,不再继续初始化,而是继续沿用上次退出时的值。

    b☞全局变量的定义最好放在函数的最上方,它的作用范围是定义处至函数结尾;若它不是定义在最上方,也可以通过extern声明将其作用范围拓展至声明处!

    c☞全局静态变量,即在定义全局变量时在前面加上static。此时该全局变量的作用范围仅限于本文件中,而其他文件不能通过extern声明引用它。

2/常量区0x42......(存放函数中的字符串常量,一般该区域为只读,不可修改!)

3/heap0x38......(由malloc申请分配的区域,可以很大GB,用完之后需要用free释放)

4/程序入口地址(0x0012ff80)

5/stack(函数内部定义的局部变量和函数形参)它们在进入函数时自动分配地址,退出函数时自动收回。

6/代码区(该地址区域主要存储程序的源代码,为只读区域,程序运行时不可更改)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leon_George

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值