用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;