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)。

posted @ 2023-07-24 22:39  Guanjie255  阅读(156)  评论(0编辑  收藏  举报