参考1https://blog.youkuaiyun.com/stefanjoe/article/details/79815959
参考2https://blog.youkuaiyun.com/hit_shaoqi/article/details/103348024?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-2.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-2.nonecase
1.定义一个整数
int *p=new int; //申请一个int类型大小的空间地址给p
int *p=new int(3); //申请空间的同时赋初值3
delete p;//释放单变量空间
2.定义一个数组
int *p=new int[10]; //未初始化
int *p=new int[10]{1,2,3,4,5,6,7,8,9,10};//初始化
delete[] p;//注意删除数组时,要在delete后添加[]
注意:删除数组空间时,要在delete后加[ ]
3.定义二维数组
//方式1
int (*array)[n] = new int[m][n];
delete []array; // in c++11: auto array = new int[m][n]
//方式2
int** array = new int*[m];
for(i)
array[i] = new int[n];
for(i) delete []array[i];
delete []array; // 多次析构,不建议使用
//方式3
int* array = new int[m*n];
delete []array; //数组按行存储
//C++11的新特性
auto array = new int[m][n];
delete []array;
//注意这种方式不可用: int **array = new int[m][n];
建议采用第一种即可,记得太多反而混乱,先学会一种,其他几种了解,看懂即可。
C++动态内存分配与释放详解
本文详细介绍了C++中动态内存的管理,包括如何使用`new`关键字申请整数、数组及二维数组的空间,并进行初始化。同时,强调了使用`delete`释放内存的重要性,特别是释放数组时需在`delete`后加上`[]`。文中还探讨了不同二维数组定义方式的优缺点,并指出避免使用可能导致多次析构的方式。

1225

被折叠的 条评论
为什么被折叠?



