C++二维动态数组定义指南:完整代码示例
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;
}
代码说明:
- 包含头文件:
#include <iostream>用于输入输出操作。 - 获取数组维度: 代码首先获取用户输入的行数 (
rows) 和列数 (cols),用于定义数组的大小。 - 动态分配内存:
int** arr = new int*[rows];声明一个指向指针的指针arr,用于存储二维数组的行地址。arr[i] = new int[cols];为每一行分配内存空间,存储cols个整数。
- 初始化数组元素: 代码使用嵌套循环遍历数组,并从用户输入中读取每个元素的值。
- 打印数组内容: 代码再次使用嵌套循环遍历数组,并将每个元素的值打印到控制台。
- 释放内存:
delete[] arr[i];释放每一行分配的内存空间。delete[] arr;释放存储行地址的内存空间。
重要提示:
- 在使用动态内存分配时,务必在程序结束前释放所有已分配的内存,以防止内存泄漏。
- 使用
delete[]运算符释放数组内存时,请确保使用方括号[],以指示释放的是整个数组的内存,而不是单个元素的内存。
希望这段代码和说明能够帮助你理解如何在C++中定义和操作二维动态数组。
原文地址: https://www.cveoy.top/t/topic/TgF 著作权归作者所有。请勿转载和采集!