码迷,mamicode.com
首页 > 其他好文 > 详细

OOP 1.3 动态内存分配

时间:2018-02-11 22:42:50      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:个数   一个   必须   down   delete   new t   表达式   内存分配   内存   

1、new运算符用法

  • 分配一个变量:P=new T;
    • T是任意类型名,P是类型为T的指针。动态分配出一片大小为sizeof(T)字节的内存空间,将该空间的起始地址赋值给P(new T的返回值为 T)。
      e.g.

      int *pn;
      pn=new int;
      *pn=5;
  • 分配一个数组:P=new T[N];
    • T是任意类型名,P是类型为T的指针。N是要分配的数组元素的个数,可以是整数,可以是表达式。动态分配出一片大小为Nsizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P(new T[N]的返回值为 T*)。
      e.g.

      int *pn;
      int i=5;
      pn=new int[i*20];
      pn[0]=1;
      pn[100]=1;//可通过编译,但运行过程数组越界,程序出错

2、delete运算符释放动态分配内存

  • delete 指针//指针必须指向new出来的空间
    e.g.

    int *p=new int;
    *p=5;
    delete p;
    delete p;//运行异常,一片空间不能被delete多次
  • delete []指针//指针必须指向new出来的数组
    e.g.

    int *p=new int[20];
    p[0]=1;
    delete [] p;

OOP 1.3 动态内存分配

标签:个数   一个   必须   down   delete   new t   表达式   内存分配   内存   

原文地址:https://www.cnblogs.com/fzu-031702148/p/8443167.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!