也对哦,变小时要比较形参o和n的值,小的做为循环条件。
不太明白 return list=t是怎么回事。
刚又写个二维的更恐怖。可惜在错了,有注释可以帮忙看看.
#include <iostream.h>
template <class T>
void Array(T **&x,int row,int clu) //申请新的二维数组
{
int i;
x=new T*[row];
for(i=0;i<row;i++)
x[i]=new T[clu];
}
template <class T>
void Del2dArray(T **&x,int row)
//释放二维数组
{
int i;
for(i=0;i<row;i++)
delete []x[i];
delete []x;
x=0;
}
template <class T>
void change(T**&ne2,T **&old,int o,int nr,int nc)
{
Array(ne2,nr,nc);
int i;
for(i=0;i<o;i++)
ne2[i]=old[i];
cout<<ne2[0][1];
//从这里看来新的数组的申请和赋值都是成功的
Del2dArray(old,o);
}
void main()
{
int **c;
int i,j,o=1;
Array(c,3,4);
for(i=0;i<3;i++)
for(j=0;j<4;j++)
c[i][j]=o++;
int **n;
change(n,c,3,10,20);
cout<<n[0][1];
//到这里就出错了
Del2dArray(n,10);
}