从C到C++:动态内存分配
动态内存分配
目的:按需分配内存空间,减少内存浪费。在C中,用malloc函数实现动态内存分配;在C++中,用new运算符实现动态内存分配。
动态分配一个变量
int * pn;
pn = new int;
*pn = 5;
动态分配一个数组
int * pn;
int i = 5;
pn = new int[i * 20];
pn[0] = 20;
pn[100] = 30; //编译没问题; 运行时导致数组越界
new运算符返回值的类型
用delete运算符释放动态分配的内存
释放动态分配的变量
释放动态分配的数组
如果不加[],会导致new出来的空间并没有被完全释放,成为内存的垃圾碎片。