C++ new申请二维数组整理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ new申请二维数组整理相关的知识,希望对你有一定的参考价值。
参考技术A a) int a; 表示一个内存空间,这个空间用来存放一个整数(int);b) int* a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放整数的空间,即a)中提到的空间;
c) int** a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放指针的空间,并且指向的这个空间中的指针,指向一个整数。也简单的说,指向了一个b)中提到的空间;
动态申请二维数组:
//申请空间
int** a2 = new int*[rows]; //开辟一块内存用来存放 每一行的地址 int*,申请两个int * 型的空间
for(int i=0;i<rows;i++)
a2[i] = new int[columns]; //再分别为每一行开辟内存
//释放空间
for(int i=0;i<rows;i++)
delete []a2[i];
delete []a2;
————————————————
int **swp; //动态申请二维数组 2行 10列
swp=new int*[2];
for(int i=0;i<2;i++)
swp[i]=new int[10];
释放内存:
for(int i=0,i<2,i++)
delete []a[i];
delete []a;
d) int (*a)[10];a是一个指针,这个指针指向一个长度为10、类型为int的数组;
如果有一个二维数组p[2][10], a = p; a++以后 指向p[1][0]
int (*a)[10] = new int[2][10];
int a[m][n];
这代表了一个m行n列的二位数组。
或者是
int **p;
用指针定义一个二位数组。
还有
int (*p)[n];
这定义了一个未知行n列的二位数组。
C++二维数组内存分配
在C++中,用new和delete分配和释放内存:
1.例如,给一个4*5的二维数组分配内存
方法一:直接申请二维数组,逐一分配内存
1 int **array; 2 //分配内存 3 array=new int*[4]; 4 5 for (int i=0;i<4;i++) 6 array[i]=new int[5]; 7 8 //释放内存 9 for (int i=0;i<4;i++) 10 delete[] array[i]; 11 12 delete[] array;
方法二:按照一维数组进行分配
int *array; array=new int[4*5];
以上是关于C++ new申请二维数组整理的主要内容,如果未能解决你的问题,请参考以下文章