zoukankan      html  css  js  c++  java
  • [64节]多维数组(Multidimensional Arrays in C++(2D arrays))

    关于具体的多维数组不赘述,但是有可能会有一个内存泄漏的问题,具体可以看代码

    #include <iostream>
    
    int main()
    {
        int** a2d = new int* [50];
        for (int i = 0; i < 50; i++)
            a2d[i] = new int[50];
        
        for (int i = 0; i < 50; i++)
            delete[] a2d[i];
        delete[] a2d;
        std::cin.get();
    }

    如果直接删除a2d,就会导致这些指针指向的数组中的数据无法被删除,所以需要先循环释放各个数组,再释放a2d。

    当然,还有一种方式

        int* array = new int[5 * 5];
        for (int y = 0; y < 5; y++)
        {
            for (int x = 0; x < 5; x++)
            {
                array[x + y * 5] = 2;
            }
        }

    这样数字在内存中就是连续的。更好的cache hit。

  • 相关阅读:
    Swing 2
    Swing 1
    集合
    关于sql 模糊字段查询语句
    关于前端开发的几篇文章
    黄金点游戏
    word count
    四则运算
    软件工程——《构建之法》读后困惑
    自我介绍
  • 原文地址:https://www.cnblogs.com/EvansPudding/p/12543112.html
Copyright © 2011-2022 走看看