堆/栈/静态存储区

栈:【函数调用】
函数中形参和局部变量存储在栈上。
栈在程序中用于维护函数调用的上下文,保存了一个函数调用所需要维护的信息。
函数调用栈上的数据,当函数调用时,对应的栈空间在函数返回前是专用的(即此时不能被其余函数访问),在函数调用结束之后,栈空间将被释放,数据不再有效。
注意:函数调用结束之后,栈空间释放。故局部变量中的指针和地址是禁止作为返回值的。(指针和地址通过变异之后,一般都关联了一个特定的内存,当函数调用结束之后,这段内存也会消失,接受了局部变量中的指针和地址的变量也就无法再找到这段内存)。

堆:【内存动态申请和归还】
堆是程序中一块预留的内存空间,给程序员自由支配。
堆中被程序申请使用的内存在主动释放前都是一直有效的
获取堆:malloc,释放堆free。

静态存储区:【全局变量和静态变量】
主要保存全局变量和静态局部变量,其生命周期直到程序运行结束。
其大小在编译期间就确定,且随着程序的运行而分配空间信息最终会保存到可执行程序中。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值