C++二维动态数组的创建与删除 java创建二维数组

C++中用new动态创建二维数组的格式一般是这样:

TYPE (*p)[N] = new TYPE [][N];

其中,TYPE是某种类型,N是二维数组的列数。采用这种格式,列数必须指出,而行数无需指定。在这里,p的类型是TYPE*[N],即是指向一个有N列元素数组的指针。

还有一种方法,可以不指定数组的列数:

int **p;
p = newint*[10];//注意,int*[10]表示一个有10个元素的指针数组
for (int i = 0; i != 10; ++i)
{
p[i]= new int[5];
}

这里是将p作为一个指向指针的指针,它指向一个包含10个元素的指针数组,并且每个元素指向一个有5个元素的数组,这样就构建了一个10行5列的数组。


当数组使用完毕,释放空间的代码是:

for(int i = 0; i != 5; i++)
{
delete[]p[i];
}
delete[] p;

处理二维数组,可以用降维或是二维法。
降维法是用一位数组来接受二维数组,将二维元素的首地址&a[0][0]作为参数,传递给函数,函数用int*接受。
二维法就直接用二维数组来接受,但是需要指定列数。

如要想创建一个[m][n]的二维数组。

下面为通过动态创建一个指针数组的方法来动态创建二维数组的方法。

C版本:

double**data;

data = (double**)malloc(m*sizeof(double *));
for(int j=0;j<m;j++)
{
data[j] =(double*)malloc(n*sizeof(double));
//这个指针数组的每个指针元素又指向一个数组。
}

for (int i=0;i<m;i++)
{
for (intj=0;j<n;j++)
{
data[i][j]=i*n+j;//初始化数组元素
}
}

for (i=0;i<m;i++)
{
free(data[i]);
//先撤销指针元素所指向的数组
}
free(data);

C++版本:

double **data;

data = newdouble*[m];//设置行 或直接double**data=new double*[m]; 一个指针指向一个指针数组。

for(int j=0;j<m;j++)
{

data[j] = newdouble[n];//这个指针数组的每个指针元素又指向一个数组。
}

for (int i=0;i<m;i++)

{
for(int j=0;j<n;j++)
{
data[i][j]=i*n+j;//初始化数组元素
C++二维动态数组的创建与删除 java创建二维数组
}

}

for(i=0;i<m;i++)
{
delete[] data[i]; //先撤销指针元素所指向的数组
}
delete[] data
;

这种方法是通过先动态创建一个指针数组 ,然后为指针数组的每个元素再动态指向一个数组的办法来完成的。其创建过程与销毁过程两样重要。

在销毁的过程,先销毁指针数组每个元素指向的数组,然后再销毁这个指针数组。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/264494.html

更多阅读

莲雾的功效与作用 冬枣的功效与作用

莲雾的功效与作用——简介莲雾又名天桃、水蒲桃或洋蒲桃,是一种香甜可口的水果。莲雾不仅美味香甜,还是非常营养的水果,其富含多种人体所需营养成分,如蛋白质、糖类、膳食纤维、维生素B、维生素C等元素。莲雾的功效与作用不可小觑!莲雾

win7,win8中VDH的创建 win7创建还原点

win7,win8中VDH的创建——简介大家都知道,win7和win8系统中是有VHD这个实用的功能的,下面和大家分享一下VHD的创建。虚拟磁盘的用处很多,这篇只介绍如何创建win7,win8中VDH的创建——工具/原料win7系统以上的电脑win7,win8中VDH的创建—

C#的动态数组 c 动态数组的用法

在使用数组的过程中,有时候希望数组的长度和元素个数能随程序的运行不断改变,但改变一次就要重新开辟一个新的数组对象,这样将占用内存空间。为了解决这个问题,Microsoft.NET Framework 体统了一个ArrayList类,专门用于处理可按动态增减

词牌名的来源与典故二 词牌名的来源大全

词牌名的来源与典故(二)28、水调歌头29、 相见欢30、踏莎行31、南歌子32、浪淘沙33、渔歌子34、水龙吟35、定风波36、一剪梅37、满江红38、帝台春39、摸鱼儿40、桂枝香41、清平乐42、南乡子43、卜算子44、贺新郎45、凤凰台上忆吹箫28

声明:《C++二维动态数组的创建与删除 java创建二维数组》为网友白开水旳滋味分享!如侵犯到您的合法权益请联系我们删除