在前面的学习中,我认识到针对未知长度的一维数组,使用动态分配内存是我最常用的方式。那么对于未知长度的二维数组?指针and动态分配内存,应该就是那个解。
一、输入输出未知长度的一维数组
#include<iostream>
using namespace std;
int main() {
int num;
cin >> num;
//动态内存分配
int* arr = new int[num];
//输入一维数组元素
for (int i = 0; i < num; i++) {
cin >> arr[i];
}
//输出一维数组元素
for (int j = num - 1; j > -1; j--) {
cout << arr[j] << " ";
}
//释放内存
delete[] arr;
return 0;
}
二、输入输出未知长度的二维数组
#include <iostream>
using namespace std;
int main() {
int n, m;
//动态内存分配
int** arr = new int* [n];
for (int i = 0; i < n; ++i) {
arr[i] = new int[m];
}
//输入二维数组元素
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> arr[i][j];
}
}
//输出二维数组元素
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cout << arr[i][j] << " ";
}
cout << endl;
}
// 释放内存
for (int i = 0; i < n; ++i) {
delete[] arr[i];
}
delete[] arr;
return 0;
}