C++中定义一个二维数组&代码可视化(利用二级指针)
1.代码展示:在C++中定义二维数组
#include <iostream>
using namespace std;
void Traverse(int** p);
int main() {
// m表示二维数组中包含的一维数组个数,n表示每个一维数组的元素个数
// 如果把二维数组看作矩阵,那么m和n分别表示矩阵的行数和列数
int m = 3, n = 5;
// arr是int型二级指针,指向一个长度为m的int型指针数组
int** arr = new int*[m];
for (int i = 0; i < m; i++) {
// arr[i]是一个指针,指向一个长度为n的int型数组
arr[i] = new int[n];
for (int j = 0; j < n; j++) {
// 为元素赋值,也可以使用cin输入元素的值
arr[i][j] = 10;
}
}
// 遍历二维数组,函数的实参和形参多是二级指针
Traverse(arr);
// 需要释放堆内存,一定先释放指针数组中每一个指针指向的内存,然后在释放二级指针指向的指针数组所占用的内存
for (int i= 0; i < 3; i++) {
delete[] arr[i];
arr[i] = nullptr;
}
// 释放二级指针指向的指针数组所占用的堆内存
delete[] arr;
arr = nullptr;
return 0;
}
void Traverse(int** p) {
// 利用二级指针p遍历二维数组
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
cout << p[i][j] << " ";
}
cout << endl;
}
}
2.代码可视化以及二级指针图示说明
点击代码可视化调转到代码可视化网站(支持C/C++、Java、Python、Javascript)。