template <typename Type>
Type** New_Two_Dimension_Array(const int nrow,const int ncol)
{
if (!(nrow && ncol))
return NULL;
Type **arr, *head;
arr = (Type**)new char[nrow*sizeof(arr) + nrow*ncol*sizeof(Type)];
memset(arr,0,nrow*sizeof(arr) + nrow*ncol*sizeof(Type));
head = (Type*)(arr + nrow);
for(int i = 0; i < nrow; i++)
arr[i] = head + ncol * i;
return arr;
}
/**
* 释放二维数组arr.
**/
template <typename Type>
void Delete_Two_Dimension_Array(Type** arr)
{
if (arr != NULL)
{
delete []arr;
arr = NULL;
}
}