美文网首页
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