C++动态内存

来源:互联网 发布:南京正厚软件培训知乎 编辑:程序博客网 时间:2024/06/03 10:03

栈:在函数内部声明的所有变量都将占用栈内存
堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存

new和delet运算符
动态分配内存的通用语法:new data-type

如果自由存储区已被用完,可能无法成功分配内存。所以建议检查 new 运算符是否返回 NULL 指针,并采取以下适当的操作.

删除内存
delete pvalue;

数组的动态内存分配
一维数组

// 动态分配,数组长度为 mint *array=new int [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 [] arrar[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;

对象的动态内存分配

原创粉丝点击