- 论坛徽章:
- 0
|
关于new申请动态数组空间及初始化
可以这样做:
- const int a = 256;
- // ...
- // print
- void func( int (*c)[a], int heigh, int width )
- {
- for (int y=0; y<height; y++) {
- for (int x=0; x<height; x++) {
- cout << c[y][x] << " ";
- }
- cout << '\n';
- }
- // ...
- }
- int main()
- {
- int (*c)[a] = new int[a][a];
- c[0][0] =1;
- // ...
- func( c, a, a );
- }
复制代码
但是这样的话,要求 a 为常量,即数组的个数已知的情况下才能使用。并且,函数 func() 的参数中由于常量 a 的存在,使得这个函数的使用受到一定的限制。
较好的处理方法是把二维数组当作一维数组传递到函数 func() 中,在函数内再按照逻辑上的二维数组处理:
- void func( int* c, int height, int weight )
- {
- for (int y=0; y<height; y++) {
- for (int x=0; x<width; x++) {
- cout << c[y*height+x] << " ";
- }
- cout << '\n';
- }
- }
复制代码
在 main()函数中调用 func()函数:
|
|