借鉴:http://www.cnblogs.com/beyondstorm/archive/2008/08/26/1276278.html

   http://www.cnblogs.com/platero/archive/2010/12/18/1910057.html

高维数组的动态申请和释放与二维数组的类似,所以这里只演示的是二维数组的动态申请和释放。

先来个大众版的:

 #include <iostream>

  using namespace std;

 int main(void)
{
int **p; p = new int*[]; for (int i = ; i < ; i++)
p[i] = new int[]; for (int i = ; i < ; i++) {
for (int j = ; j < ; j++)
p[i][j] = i+j;
} for (int i = ; i < ; i++)
delete []p[i]; delete []p; return ;
}

  然后是各种new:

  

1. 
A (*ga)[n] = new A[m][n]; 
... 
delete []ga; 
缺点:n必须是已知 
优点:调用直观,连续储存,程序简洁(经过测试,析构函数能正确调用)

2. A** ga = new A*[m]; 
for(int i = 0; i < m; i++) 
ga[i] = new A[n]; 
... 
for(int i = 0; i < m; i++) 
delete []ga[i]; 
delete []ga; 
缺点:非连续储存,程序烦琐,ga为A**类型 
优点:调用直观,n可以不是已知

3. A* ga = new A[m*n]; 
... 
delete []ga; 
缺点:调用不够直观 
优点:连续储存,n可以不是已知

4. vector> ga; 
ga.resize(m); //这三行可用可不用 
for(int i = 1; i < n; i++) // 
ga[i].resize(n); // 
...

缺点:非连续储存,调试不够方便,编译速度下降,程序膨胀(实际速度差别不大) 
优点:调用直观,自动析构与释放内存,可以调用stl相关函数,动态增长

5. vectorga; 
ga.resize(m*n); 
方法3,4的结合

6. 2的改进版
A** ga = new A*[m]; 
ga[0] = new A[m*n]; 
for(int i = 1; i < m; i++) 
ga[i] = ga[i-1]+n; 
优点:连续存储,n可以不是已知,析构方便,猜想只需delete [] ga;

问题:

1.怎么进行多维数组的声明和初始化?

2.是否能够动态分配多维数组,怎么样正确析构?

3.怎么理解这些操作?

最新文章

  1. Mybatis入门DEMO
  2. C语言 &#183; 未名湖边的烦恼
  3. Linux 守护进程三
  4. JavaWeb学习笔记——JavaBean的保存范围和删除
  5. 与你相遇好幸运,Tippecanoe在Centos下の安装
  6. Nginx reopen reload作用及工作过程
  7. Linq to sql-存储过程
  8. hdu1251在词典里统计前缀出现的个数
  9. BZOJ3488 : [ONTAK2010]Highways
  10. javaWEB中的HttpServlet(企业开发使用)
  11. c++中两种常量方法的比较
  12. HDU1431+简单题
  13. hdoj 3635 Dragon Balls【并查集求节点转移次数+节点数+某点根节点】
  14. GitLab实战操作指南
  15. JS 判断两个时间的大小(可自由选择精确度:天,小时,分钟,秒)
  16. Xamarin Essentials教程地理定位Geolocation
  17. linux——系统内核参数优化
  18. Mysql计算并保留两位小数
  19. vuex简介(转载)
  20. java基本数据类型与封装类型详解(int和Integer区别)

热门文章

  1. bzoj 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场【bfs】
  2. 【BZOJ2525】[Poi2011]Dynamite(二分,树形dp)
  3. Pycharm初始创建项目和环境搭建(解决aconda库文件引入不全等问题)
  4. RT-Thread 设备驱动-硬件定时器浅析与使用
  5. ACM_01背包(恰好装满)
  6. Android 你知道界面布局嵌套多少层之后会Crash吗
  7. Sonar 规则
  8. httponlycookie
  9. 网站卡测试用 PageSpeed Insights
  10. (独孤九剑)--cURL