内存分配(堆、栈)

栈(stack)地址是向低地址扩展的数据结构,是一块连续的内存区域,栈的速度快,但是空间小。C++函数栈空间最大值为1M,可以调整存储类型:值类型(函数参数、局部变量)、结构体堆(heap)是向高地址扩展的数据结构,是不连续的内存区域,是用链表实现的。存储类型:引用类型、new关键字实例化引用数据类型的对象,并指向堆中的数据、数组静态变量区:static修饰的变量!s...
摘要由CSDN通过智能技术生成

 栈(stack)地址是向低地址扩展的数据结构,是一块连续的内存区域,栈的速度,但是空间。C++函数栈空间最大值为1M,可以调整

存储类型:值类型(函数参数、局部变量)、结构体

 

 堆(heap)是向高地址扩展的数据结构,是不连续的内存区域,是用链表实现的。

存储类型:引用类型、malloc关键字实例化引用数据类型的对象,并指向堆中的数据、数组
(new出来的对象存放在自由变量区,可以是堆区,还可以是静态存储区)

静态变量区:static修饰的变量!

static修饰的变量与全局变量:相同点:都在静态存储区

不同点:非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效

 

结构体&类分配规则:

1、 分配内存的顺序是按照声明的顺序。

2、 每个变量相对于起始位置的偏移量必须是该变量类型大小的整数倍,不是整数倍空出内存,直到偏移量是整数倍为止。

3、 最后整个结构体的大小必须是里面变量类型最大值的整数倍。

空类  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值