1. 用new 运算符实现动态内存分配
P = new T;
T是任意类型名,P是类型为T * 的指针。
动态分配出一片大小为 sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P。比如:
int * pn; pn = new int; * pn = 5;
P = new T[N];
T :任意类型名
P :类型为T * 的指针
N :要分配的数组元素的个数,可以是整型表达式
动态分配出一片大小为 sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P。
int * pn; int i = 5; pn = new int[i * 20]; pn[0] = 20; pn[100] = 30; //编译没问题。运行时导致数组越界
delete 指针;//该指针必须指向new出来的空间
int * p = new int; * p = 5; delete p; delete p; //导致异常,一片空间不能被delete多次
delete [ ] 指针;//该指针必须指向new出来的数组
int * p = new int[20]; p[0] = 1; delete [ ] p;
第一周 从C走进C++ 006 动态内存分配,布布扣,bubuko.com
原文:http://www.cnblogs.com/qingsiburan/p/3845101.html