【C++】动态二维数组的创建

来源:互联网 发布:图片纠偏软件 编辑:程序博客网 时间:2024/05/18 09:15

动态二维数组的创建,先挖个坑。

创建二维动态数组的方法:
假设需要一个 n * n 的二维 int 数组,由于 new 只能创建一维数组,所以先创建一个一维数组,有 nint * 型值。再让这 nint * 指向 nint 一维数组。
如下:

int **p = new int*[n];for (std::size_t i = 0; i < n; ++i)    p[i] = new int[n];

使用完毕记得回收内存。
完整代码如下:

#include <iostream>int main() {    // 输入二维数组大小    unsigned n;    std::cout << "Input a integer: ";    std::cin >> n;    // 申请数组空间    int **p = new int*[n];    for (std::size_t i = 0; i < n; ++i)        p[i] = new int[n];    // 输入数组    std::cout << "Input the matrix: \n";    for (std::size_t i = 0; i < n; ++i)        for (std::size_t j = 0; j < n; ++j)            std::cin >> p[i][j];    // 输出转置数组    std::cout << "Transposed: \n";    for (std::size_t i = 0; i < n; ++i) {        for (std::size_t j = 0; j < n; ++j)            std::cout << p[j][i] << " ";        std::cout << std::endl;    }    // 回收动态内存    for (std::size_t i = 0; i < n; ++i)        delete[] p[i];    delete[] p;    system("pause");    return 0;}
原创粉丝点击