请问怎么动态申请2维数组,n维呢? 我查过书,看不太懂,是不是只有一组下标才能用变量表达式?
float (*cp)[25][10];
cp=new float[10][25][10];
这样申请是什么意思呢?
请问怎么动态申请2维数组,n维呢? 我查过书,看不太懂,是不是只有一组下标才能用变量表达式?
回2楼:
对,应该是这个意思,谢谢。但是好像如果要使用变量表达式最多也就是改成 cp=new float[N][25][10]; 依然像是不能用变量表达式指定2维数组的大小。 因为是动态的嘛,我想把2维数组中的下标表达式都用变量表达式表示,可以吗?
/**
d1 can be a variable, d2---dn have to be constants.
The reason is that the complier needs to know how much
memory should be allocated.
*/
int d1;
const int d2=5;
...
const int dn=5;
float (*cp)[d2]...[dn];
d1=3;
cp = new float[d1][d2]...[dn];
delete [] cp;
d1=7;
cp = new float[d1][d2]...[dn];
delete [] cp;
我也是新手,看书有这么一个;
typedef int* IntArrayPtr;
int d1,d2;
cout<<"Enter the row and column dimensions of the array:\n";
cin>>d1>>d2;
IntArrayPtr *m=new IntArrayPtr[d1];
int i,j;
for(i=0;i<d1;i++)
m[i]=new int[d2];
//m现在就变成了的d1行d2列的二维数组。