C++中栈存储和堆存储

在C++中,数据主要有两种存储方式,一种是栈存储方式,一种是堆存储方式。

 

1. 栈存储

 

栈存储通常用于存储占用空间小,生命周期短的数据,如局部变量和参数变量等,除了静态变量和全局变量外,其他的所有变量均属于栈存储方式。

 

2. 堆存储

 

堆存储通常用于存储占用空间大、生命周期长的数据,如静态变量和全局变量等。

 

除了静态变量和全局变量,用户可以使用new运算符在堆中开辟一个空间,使变量存储在堆中,

 

注:1)在程序中,使用new运算符在堆中开辟一个空间之后,在数据使用完后,一定要释放在堆中开辟的空间,否则会出现内存泄露,运算符delete用于释放new运算符在堆中开辟的空间。

 

2)此外,在释放使用new运算符为数组分配的空间时,需要使用delete[]来释放。

 

3)在程序中使用new运算符在堆中分配空间时,注意不要轻易修改指针指向的地址,因为当前指针指向了堆空间的地址,如果将其再指向其他地址,将导致无法释放堆空间,

如:int *data = new int[3];

      int num = 10;

      data = #

上述代码中,指针data最初指向堆中的一个地址空间,然后将其指向了整型变量num,这样将导致new运算符在堆中开辟的空间无法被释放,最终会导致内存泄露,这是不允许的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值