C++ 动态内存
-
new 和 delete 运算符
double * pvalue = nullptr; // 初始化为null指针 pvalue = new double; // 为变量请求内存空间 // 为数组分配空间 double * pvalue = nullptr; pvlaue = new double[20]; // 为数组分配内存空间
-
如果 heap 已被用尽,可能无法成功分配内存。所以应该检查
new
运算符是否返回空指针。delete pvalue; // 释放 pvalue 指向的内存
可以发现,new
和 delete
是对应于C语言中的 malloc
和free
什么时候用?
Class中的构造函数
和析构函数
中会用到。
new 在Java中是实例化一个对象,而Java中new
一个对象其实也是在heap中分配一块空间从而完成实例化一个对象的过程,所以从这个角度讲,二者的精神内核是一致的。