关于动态数组
动态数组float (*cp) [25][10];
cp=new float [10][25][10];
这里的红色部分,属于哪一种写法?
还是就是这里的一种特殊表示?(尤其是那个括号)
另外第二句的第一个中括号内的10到底代表什么呢?
以下是引用aipb2007在2007-7-5 17:02:27的发言:
你理直接解这个多维数组不容易。
先看下面这个2维的。
float *p[5]; //不加括号,这表示声明一个5个元素的数组p,元素类型为指向float的指针。
float (*p)[5]; //加括号,声明一个指针,指向一个数组,这个数组有5个float元素。
理解上面这个,再去看lz的问题,其实就是一个3维数组。
cp=new float [10][25][10]
这样的写法我没看到过,怀疑,不知真确否。
float (*cp) [25][10];
int n=10;
cp=new float [n][25][10];
1. cp=new float [10][25][10]; is 100% standard C++.
2. The only thing we need to remember is that only the first dimension can be variable; i.e., the 2nd and 3rd dimensions have to constants. Otherwise, the compiler would not be able to determine how many bytes to allocate.