一月十四日 关于生存期的问题

问题一:为什么全局变量g_mid在进程执行中已经分配到data区中,但是在主函数调用Add函数时却无法使用全局变量g_mid?

答:作用域是针对编译和链接的过程,生存期是针对程序的执行过程,而在编译过程中,全局变量是在Add函数后定义的,按照作用域的规定,编译是无法通过的,而编译无法通过就不能产生可执行文件,没有执行文件进程就不能执行,所以也就不存在全局变量分配到data区中而无法调用这一说法。生存期的讨论范畴是程序编译链接成功后生成了可执行文件,当程序执行时才存在分配资源给进程,最后回收资源。

问题二:堆区如何使用,是否定义全局变量或者局部变量就可以调用这部分资源?

答:

堆区(动态空间)的生存期的管理由程序员通过调用malloc函数来申请使用这部分区域,通过调用free函数来回收这部分区域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值