您的位置:首页 > 其它

二维动态数组创建

2017-02-06 16:41 204 查看
众所周知,创建一维动态数组很容易,使用下面的代码便可以轻松创建

int *Array=new int[10];
//Add some code here;
delete [] Array;


但是,如果遇到动态的二维数组应当如何创建呢?这里给出3中方法:

方法一:用一维数组去模仿二维数组,由于无论何种类型的动态数组,其在内存中都是线性的,所以可以用一维数组去模拟。

优点:处理简单,加上一个转换函数就可以实现,管理容易。

缺点:不直观。

int length,width;
int *Array=new int [length*width];
//Add some code here
delete Array;


方法二:先创建一排指针,再依次申请内存。

优点:较为直观,管理方便。

缺点:必须知道行数或列数。

int width;
int *Pointer[10];
for(int i=0;i<10;i++)
{
Pointer[i]=new int [width];
}
//Add some code here
for(int i=0;i<10;i++)
{
delete [] Pointer[i];
}


方法三:用二级指针申请一维动态指针数组,再一次申请。(该过程申请到的内存单元连续)

优点:直观,使用方便。

缺点:创建、销毁都比较麻烦,需要逐层销毁。

int length,widthl
int **Poniter=new int*[length];
for(int i=0;i<length;i++)
{
Pointer[i]=new int[width];
}
//Add some code here;
for(int i=0;i<10;i++)
{
delete [] Poniter[i];
}
delete [] Pointer;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: