上一篇提到了C++中的动态内存机制以及如何动态建立数组,这里给出更具一般性的算法,对一个二维数组,每一行所含元素个数不相同的情况。
#include <bits/stdc++.h>
using namespace std;
template<class T>
bool make2dArray(T ** &arr, int numberOfRows, int arrNumberOfColumns[]) {
//创建一个二维数组
try{
//创建行指针
arr = new T * [numberOfRows];
//为每一行分配空间
for(int i = 0; i < numberOfRows; ++i) {
for(int j = 0; j < numberOfRows; ++j)
arr[i] = new int [arrNumberOfColumns[j]];
}
return true;
}catch (bad_alloc) {
cerr << "Out of memory" << endl;
return false;
}
}
int main() {