C++动态申请数组
1.使用new运算符来申请数组更加简便,同时也会使指针更像数组。
2.每一次new操作都会向内存申请一块连续的地址空间,也就是说二维数组相邻的列在 内存中地址不一定是相邻的。
3.C++中申请内存不必区分基本类型还是自定义的类,都是统一的定义方法。
申请一个大小为 n=10 的一维数组
int n = 10;
int* a = new int[n];
/*
* 其余代码
*/
delete[]a;
申请一个大小为n * n的二维数组
int n = 10;
int **a = new int*[n];
for (int i = 0; i < n; i++)
a[i] = new int[n];
/*
* 其余代码
*/
for (int i = 0; i < n; i++)
delete[] a[i];
delete[]a;
申请一个大小为n * n * n的三维数组
int n = 10;
int ***a = new int**[n];
for (int i = 0; i < n; i++){
a[i] = new int*[n];
for (int j = 0; j < n; j++)
a[i][j] = new int[n];
}
/*
* 其余代码
*/
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++)
delete[] a[i][j];
delete[] a[i];
}
delete[] a;