C++动态二维数组的创建

两种方式。

一,二级指针,创建2行3列的动态二维数组。

这里,p指向的是2个地址,这两个地址各指向长度为3的一维整型数组。

在内存中,每行元素内部顺序排列。两行元素的首地址不同,p[1]与p[2]存放于不同空间。

int **p=new int*[2];

for(int i=0;i<2;i++){

p[i]=new int[3];

}

每个元素取法:*(*(p+i)+j).

二,数组指针的方式创建,(比二级指针的方式少了一级地址的存储空间)。

int (*p)[3]=new int [2][3];

所有元素按行顺序存储,存放于一片连续的空间。

每个元素取法:(方法1)p[i][j] ,因为连续存储,i,j相对首地址的偏移量不超过元素总数即可,p[0][4]是正确的。

或者(方法2)  *(*(p+i)+j),因为此时p指向的空间是按数组单位来划分的。.

上一篇:C++并发编程 等待与唤醒


下一篇:安装libvirt管理套件(C/S架构模式,用户管理kvm虚拟机)