数组的动态内存分配

     为数组动态分配内存是很简单的。假定已经把pstring声明为“指向char”类型,就可以使用下面的语句为char类型的数组分配自由存储区中的内存空间

 

     pstring= new char[20];

 

     为包含20个字符的char数组分配了内存空间,并把它的地址存储在pstring中。要删除刚才在自由存储区中创建的数组,必须使用delete运算符:

 

    delete [] pstring;

 

      这里的方括号非常重要,它表示要删除的是一个数组。从自由存储区中删除数组时,应该总是包含方括号,否则结果就是不可预料的。另外,这里不能指定维数,只写上[]就可以了。

 

      delete确保该内存可以再以后由另一个变量使用。如果没有使用delete,后来又在指针pstring中存储了另一个地址,就不能释放原来的内存空间,也不能使用它包含的变量,因为不能再访问该地址了。

      delete运算符释放了内存,但没有改变指针,指针所表示的内存地址的值没有变,但该内存现在已经自由了,可以立即分配给其他实体,例如另外一个程序。为了避免使用包含垃圾地址的指针,除非要重新给它赋值或它已超出作用域,否则就应在释放内存时重新设置该指针。

 

     pstring=0;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值