为一个二维数组分配存储空间
template<class T>
bool make2dArray(T ** &x, int numbersOfRows, int numbersOfColumns)
{
// 创建一个二维数组
try
{
// 创建行指针
x = new T * [numbersOfRows];
// 为每一行分配空间
for(int i = 0; i < numbersOfRows; i++)
x[i] = new T [numbersOfColumns];
return true;
}
catch(bad_alloc) {return false;}
}
释放在函数make2dArray中分配的空间
template<class T>
void delete2dArray(T ** &x, int numberOfRows)
{
// 删除二维数组
// 删除行数组空间
for(int i = 0; i < numberOfRows; i++)
delete [] x[i];
// 删除行指针
delete [] x;
x = NULL; // 为了防止用户继续访问已被释放的空间
}