这个比较复杂一点,我在源码里做了一点注释,应该可以看懂。
**仅给有需要的人以参考,如有错误请纠正我**
#include<iostream>
template<typename T>
void make2dArray(T ** &x, int numberOfRows, int arr[], int n)
{
x = new T*[numberOfRows];
for (int i = 0; i < n; i++)
x[i] = new T[arr[i]];
std::cout << "Complite" << std::endl;
}
template<typename T>
void delete2dArray(T ** &x, int numberOfRows)
{
for (int i = 0; i < numberOfRows; i++)
delete[] x[i];
delete[]x;
x = nullptr;
std::cout << "Deleted" << std::endl;
}
int main()
{
double ** x;
int numberOfRows = 5;
int arr[5] = { 2, 3, 4, 5, 6 };
make2dArray(x, numberOfRows, arr, 5);
delete2dArray(x, numberOfRows);
return 0;
}