• C++ 动态内存


    C++ 程序中的内存分为两个部分:

    • 栈:在函数内部声明的所有变量都将占用栈内存。
    • 堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。
    /*我们可以定义一个指向 double 类型的指针,然后请求内存,
    该内存在执行时被分配。我们可以按照下面的语句使用 new 运算符来完成这点:
    double* pvalue = NULL; // 初始化为 null 的指针
    pvalue = new double;   // 为变量请求内存
    delete pvalue;        // 释放 pvalue 所指向的内存
    
    假设我们要为一个字符数组(一个有 20 个字符的字符串)分配内存,
    我们可以使用上面实例中的语法来为数组动态地分配内存
    char* pvalue  = NULL;   // 初始化为 null 的指针
    pvalue  = new char[20]; // 为变量请求内存
    delete [] pvalue;        // 删除 pvalue 所指向的数组
    
    一维数组
    int *array=new int [m];// 动态分配,数组长度为 m
    delete [] array;//释放内存
    
    二维数组
    int **array
    // 假定数组第一维长度为 m, 第二维长度为 n
    // 动态分配空间
    array = new int *[m];
    for( int i=0; i<m; i++ )
    {
    array[i] = new int [n]  ;
    }
    //释放
    for( int i=0; i<m; i++ )
    {
    delete [] arrary[i];
    }
    delete [] array;
    
    三维数组
    int ***array;
    // 假定数组第一维为 m, 第二维为 n, 第三维为h
    // 动态分配空间
    array = new int **[m];
    for( int i=0; i<m; i++ )
    {
    array[i] = new int *[n];
    for( int j=0; j<n; j++ )
    {
    array[i][j] = new int [h];
    }
    }
    //释放
    for( int i=0; i<m; i++ )
    {
    for( int j=0; j<n; j++ )
    {
    delete array[i][j];
    }
    delete array[i];
    }
    delete [] array;
    
    
    */
    
    
    #include <iostream>
    using namespace std;
    class Box
    {
    public:
    	Box() 
    	{
    		cout << "调用构造函数!" << endl;
    	}
    	~Box() 
    	{
    		cout << "调用析构函数!" << endl;
    	}
    };
    
    int main()
    {
    	Box* myBoxArray = new Box[4];// 动态分配,数组长度为 4
    	delete[] myBoxArray; // 删除数组
    	system("pause");
    	return 0;
    }
    

      

  • 相关阅读:
    python 笔记8
    python笔记6
    python笔记5
    python笔记4
    python笔记3
    python课程2
    cobbler 坑爹指南
    hadoop filesystem 删除文件 复制文件 重命名文件
    hadoop 文件 复制 移动 FileUtil.copy
    soinn
  • 原文地址:https://www.cnblogs.com/277223178dudu/p/11439181.html
Copyright © 2020-2023  润新知