用new运算符实现动态内存分配

第一种用法,分配一个变量:

  P = new T;

  T是任意类型名,P是类型为T*的指针。

  动态分配出一片大小为sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P。

第二种用法,分配一个数组:

  P = new T[N];

 

  T: 任意类型名

  P: 类型为T*的指针

  N: 要分配的数组元素的个数,可以是整型表达式

  动态分配出一片大小为 N * sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P。

 

第三种用法,分配n个数组或变量给n个指针数组:

 

  P[n] = {new T[N], new T,...}

  T:任意类型名

  P:类型为T*的指针

  N:要分配的数组元素的个数,可以时整型表达式

  动态分配出一片大小为N*sizeof(T)+sizeof(T)+...的内存空间,并将内存空间各自分配给相应的指针。

 

用delete运算符释放动态分配的内存

用“new”动态分配的内存空间,一定要用“delete”运算符进行释放!!!new出来内存空间如果没有回收会成为内存的垃圾碎片,不能被其他应用程序利用,会使电脑运行缓慢。

delete 指针://该指针必须指向new出来的空间,且不能多次释放

用“delete”释放“new”出来的数组,要加上“[]

delete[]P;

posted on 2018-03-08 22:32  宵夜在哪  阅读(155)  评论(0编辑  收藏  举报