【发布时间】:2012-09-19 09:20:03
【问题描述】:
我正在传递函数:
fillArrays(arrays);
现在,数组是一个二维数组。我这样声明数组:
int **arrays = new int*[NUM_OF_ARRAYS];
arrays[0] = new int[128];
arrays[1] = new int[512];
arrays[2] = new int[2048];
arrays[3] = new int[8192];
arrays[4] = new int[32768];
arrays[5] = new int[131072];
arrays[6] = new int[524288];
arrays[7] = new int[2097152];
我是否正确地将数组传递给以下函数?
void fillArrays(int **arrays) {
const int NUM_OF_ARRAYS = 8;
for(int i = 0;i < NUM_OF_ARRAYS;i++) {
switch(i) {
case 0:
for(int j = 0;j < 128;j++)
arrays[i][j] = 1 + rand() % 2000;
break;
case 1:
for(int j = 0;j < 512;j++)
arrays[i][j] = 1 + rand() % 5000;
break;
case 2:
for(int j = 0;j < 2048;j++)
arrays[i][j] = 1 + rand() % 10000;
break;
case 3:
for(int j = 0;j< 8192;j++)
arrays[i][j] = 1 + rand() % 30000;
break;
case 4:
for(int j = 0;j < 32768;j++)
arrays[i][j] = 1 + rand() % 100000;
break;
case 5:
for(int j = 0;j < 131072;j++)
arrays[i][j] = 1 + rand() % 200000;
break;
case 6:
for(int j = 0;j < 524288;j++)
arrays[i][j] = 1 + rand() % 1000000;
break;
case 7:
for(int j = 0;j < 2097152;j++)
arrays[i][j] = 1 + rand() % 30000000;
break;
}
}
}
如果您需要任何进一步的信息,请告诉我,谢谢!
【问题讨论】:
-
你声明数组的准确程度如何?
-
很想给出“是的,你确实正确传递了数组”作为答案:P
-
@LeeNeverGup 我在问题中添加了我的声明。
-
OT:摆脱外部循环 - 您循环的代码会立即消除每次迭代的歧义,进入单独的代码分支。这是没有意义的。
-
很抱歉,您是否面临某种您认为是由于传递数组而导致的问题?这个问题还有其他意义吗?
标签: c++ arrays pointers syntax multidimensional-array