从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出来的空间并没有被完全释放,成为内存的垃圾碎片。

原文地址:https://www.cnblogs.com/rookieveteran/p/13804044.html