C++二维动态数组定义指南:完整代码示例

在C++编程中,二维动态数组是一种非常实用的数据结构,它允许你在运行时根据需要灵活地分配内存空间。

以下是使用C++定义二维动态数组的完整代码示例:

#include <iostream>

int main() {
    int rows, cols;
    
    // 获取行数和列数
    std::cout << '请输入二维数组的行数和列数:' << std::endl;
    std::cin >> rows >> cols;
    
    // 动态分配内存
    int** arr = new int*[rows];
    for (int i = 0; i < rows; ++i) {
        arr[i] = new int[cols];
    }
    
    // 初始化二维数组
    std::cout << '请输入二维数组的元素:' << std::endl;
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            std::cin >> arr[i][j];
        }
    }
    
    // 打印二维数组
    std::cout << '二维数组的内容是:' << std::endl;
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            std::cout << arr[i][j] << ' ';
        }
        std::cout << std::endl;
    }
    
    // 释放内存
    for (int i = 0; i < rows; ++i) {
        delete[] arr[i];
    }
    delete[] arr;
    
    return 0;
}

代码说明:

  1. 包含头文件: #include <iostream> 用于输入输出操作。
  2. 获取数组维度: 代码首先获取用户输入的行数 (rows) 和列数 (cols),用于定义数组的大小。
  3. 动态分配内存:
    • int** arr = new int*[rows]; 声明一个指向指针的指针 arr,用于存储二维数组的行地址。
    • arr[i] = new int[cols]; 为每一行分配内存空间,存储 cols 个整数。
  4. 初始化数组元素: 代码使用嵌套循环遍历数组,并从用户输入中读取每个元素的值。
  5. 打印数组内容: 代码再次使用嵌套循环遍历数组,并将每个元素的值打印到控制台。
  6. 释放内存:
    • delete[] arr[i]; 释放每一行分配的内存空间。
    • delete[] arr; 释放存储行地址的内存空间。

重要提示:

  • 在使用动态内存分配时,务必在程序结束前释放所有已分配的内存,以防止内存泄漏。
  • 使用 delete[] 运算符释放数组内存时,请确保使用方括号 [],以指示释放的是整个数组的内存,而不是单个元素的内存。

希望这段代码和说明能够帮助你理解如何在C++中定义和操作二维动态数组。


原文地址: https://www.cveoy.top/t/topic/TgF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录