高质量程序设计指南c++/c语言(13)--数组
1、 对于多维数组传递,必须指出除了第一维之外的所有维的长度,例如
void output(const int a[][20], int line) { count << siezof(a) << endl; //4 for(int i=0; i<line; i++) { for(int j=0; j<20; j++) { cout << a[i][j] << endl; } } }
2、多维数组的动态创建和删除
不能简单地使用一个元素类型的指针来接受动态创建的多维数组的返回地址。这是因为:一个多维数组在语义上并不等价于一个指向其元素类型的指针,而等价于一个指向数组的指针。
char *p1 = new char[5][3]; //错误
char (* p2)[4] = new char [5][4]; //OK
char * p2[4] = new char [5][4]; //error
char (*p3)[5][7] = new char[20][5][7];//ok
删除动态生成的多维数组:
delete [] p2;
delete [] p3;