美文网首页
C++学习笔记(动态内存)

C++学习笔记(动态内存)

作者: smallstrong | 来源:发表于2017-06-14 13:57 被阅读12次

C++学习笔记(动态内存)

很多时候,您无法提前预知需要多少内存来存储某个定义变量中的特定信息,所需内存的大小需要在运行时才能确定。

double* pvalue  = NULL; // 初始化为 null 的指针
pvalue  = new double;   // 为变量请求内存
delete pvalue;        // 释放 pvalue 所指向的内存

如果自由存储区已被用完,可能无法成功分配内存。所以建议检查 new 运算符是否返回 NULL 指针,并采取以下适当的操作:(巨坑啊 让我联想到Java中NullPoint)

double* pvalue  = NULL;
if( !(pvalue  = new double ))
{
    cout << "Error: out of memory." <<endl;
    exit(1);
}   

数组的动态内存分配:

char* pvalue  = NULL;   // 初始化为 null 的指针
pvalue  = new char[20]; // 为变量请求内存
delete [] pvalue;        // 删除 pvalue 所指向的数组

对象的动态内存分配:

#include <iostream>
using namespace std;
 
class Box
{
   public:
      Box() { 
         cout << "调用构造函数!" <<endl; 
      }
      ~Box() { 
         cout << "调用析构函数!" <<endl; //析构函数
      }
};
 
int main( )
{
   Box* myBoxArray = new Box[4];//这种写法看的蛋疼啊 创建4个Box对象
 
   delete [] myBoxArray; // Delete array 也会调用4次析构函数
 
   return 0;
}

learn and copy from:

http://www.runoob.com/cplusplus/cpp-dynamic-memory.html

相关文章

网友评论

      本文标题:C++学习笔记(动态内存)

      本文链接:https://www.haomeiwen.com/subject/svbsqxtx.html