c++中使用new来分配内存

指针初始化为变量的地址,比如 int *pt = &higgens

这时候变量在程序编译的时分配的有名称的内存,指针只是为可以通过名称直接访问的内存提供一个别名。

其实指针真正的厉害在于,在运行阶段分配未命名的内存以存储,在这种情况下,只能通过指针来访问内存

在c语言中,可以用库函数malloc()来分配内存

在c++中,通过new运算符

访问内存有两种方式:

1. 通过new运算符 : typeName * pointer_name = new  typeName

   需要指定2个数据类型:需要什么类型的内存以及用来声明合适的指针

   如果以及声明了相应类型的指针,则可以直接使用指针,不用再声明一个新的指针

   int  *pn = new int

     new int : 程序员告诉new,需要为int数据类型分配内存,new运算符根据类型来确定需要多少字节的内存,找到一个长度正确的内存块,并返回该内存的地址,并返回该内存块的地址。然后,将地址赋给pn,pn是被声明为指向int的指针。pn是地址,*pn是存储在那里的值。

2. 变量的地址赋给指针:

      int higgens;

      int *pt = &higgens;

pn和pt都是将一个int变量的地址复制给了指针

pt也可以通过变量名higgens来访问该int,pn就只能通过该指针进行访问

 

使用delete释放内存

当需要内存的时候,可以使用new来请求

当使用完了之后,使用delete归还给内存池,归还或释放内存可供程序的其他部分使用

int *ps = new int;

delete ps;

int a =5;

int *p = &a;

delete p;  //error

只能用delete来释放使用new分配的内存   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值