C++ - 多维数组

  1. 简介
  2. 多维数组
    1. 空间释放

C++ 学习笔记

C++ 多维数组

简介

  • 多维度数组就是 array of array
  • 内存中存放了一个连续的指针数组,每一个数组变量都是一个指针,指向另外一个数组

多维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>

int main()
{
// 堆栈变量
int* array = new int[50];
int** a2d = new int*[50];
int*** a3d = new int**[50];

array[0] = 0; // 这儿是int
a2d[0] = nullptr; // 这儿是指针, int 的指针

// 给二维数组申请空间
for (int i = 0; i < 50; ++i)
a2d[i] = new int[50];

// 给三维数组申请空间
for (int i = 0; i < 50; ++i)
{
a3d[i] = new int*[50];
for (int j = 0; j < 50; ++j)
a3d[i][j] = new int[50];
}


std::cin.get();
return 0;
}

空间释放

  • 上面的例子中,所有的内存都是在 heap 上的,需要手动删除
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // 删除二维数组
    for (int i = 0; i < 50; ++i)
    delete[] a2d[i];
    delete[] a2d;

    // 删除三维数组申请空间
    for (int i = 0; i < 50; ++i)
    {
    for (int j = 0; j < 50; ++j)
    delete[] a3d[i][j];
    delete[] a3d[i];
    }
    delete[] a3d;

欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 qinhan_shu@163.com

文章标题:C++ - 多维数组

本文作者:QinHan

发布时间:2020-01-10, 22:41:54

最后更新:2020-02-20, 05:42:12

原始链接:https://qinhan.site/2020/01/10/cpp-multidimensional-arrays/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏