Arrays 简化C语言中的大量数组声明

Arrays 简化C语言中的大量数组声明,arrays,c,loops,Arrays,C,Loops,我对编程一无所知,所以请跟我说说。 我得到了24个大小相同的数组,我必须调用2个函数,每个数组作为一个参数。所以首先我试着这样做: int array1[1023]; int array2[1023]; int array3[1023]; ... int array24[1023]; generateCode(array1, 2, 6); generateCode(array2, 3, 7); ... generateCode(array24, 4, 6); calculate(input,

我对编程一无所知,所以请跟我说说。 我得到了24个大小相同的数组,我必须调用2个函数,每个数组作为一个参数。所以首先我试着这样做:

int array1[1023];
int array2[1023];
int array3[1023];
...
int array24[1023];

generateCode(array1, 2, 6);
generateCode(array2, 3, 7);
...
generateCode(array24, 4, 6);

calculate(input, array1, 1);
calculate(inpute, array2, 2);
...
calculate(input, array24, 24);
它是这样工作的,但看起来很可怕。所以我的问题是我如何简化它?我在谷歌上搜索了几个小时,我想我需要一个多维数组之类的东西。但这些事情在另一个层面上打乱了我的思路:( 希望有人能帮我解决这个问题


提前感谢!

如果您有这样的整数数组

int array1[SIZE];
...
int arrayN[SIZE];
当您可以声明数组的数组时,如

int * array[] = { array1, ..., arrayN };
然后调用循环中的函数,如

const size_t N = sizeof( array ) / sizeof( *array );

for ( size_t i = 0; i < N; i++ )
{
    generateCode( array[i], value1, value2 );
}
const size\u t N=sizeof(数组)/sizeof(*数组);
对于(大小i=0;i
如果有如下整数数组

int array1[SIZE];
...
int arrayN[SIZE];
当您可以声明数组的数组时,如

int * array[] = { array1, ..., arrayN };
然后调用循环中的函数,如

const size_t N = sizeof( array ) / sizeof( *array );

for ( size_t i = 0; i < N; i++ )
{
    generateCode( array[i], value1, value2 );
}
const size\u t N=sizeof(数组)/sizeof(*数组);
对于(大小i=0;i
您可以声明一个int位数组,如下所示:

int array[24][1023];

generateCode(array[0], 2, 6);
generateCode(array[1], 3, 7);
...
generateCode(array[23], 4, 6); // dunno if you pick random values or if you can make a loop which will do the stuff you want

for (int i = 0; i < 24; i++)
{
    calculate(input, array[i], i + 1); // dunno what does third parameter do so i've put i +1 for tht correspond to your exemple's values but maybe you want something else ;)
}
int数组[24][1023];
生成代码(数组[0],2,6);
生成代码(数组[1],3,7);
...
generateCode(array[23],4,6);//不知道是否选取了随机值,或者是否可以创建一个循环来完成所需的工作
对于(int i=0;i<24;i++)
{
计算(输入,数组[i],i+1);//不知道第三个参数是做什么的,所以我把i+1作为tht,对应于示例的值,但可能您还需要其他参数;)
}

您可以声明一个int位数组,如下所示:

int array[24][1023];

generateCode(array[0], 2, 6);
generateCode(array[1], 3, 7);
...
generateCode(array[23], 4, 6); // dunno if you pick random values or if you can make a loop which will do the stuff you want

for (int i = 0; i < 24; i++)
{
    calculate(input, array[i], i + 1); // dunno what does third parameter do so i've put i +1 for tht correspond to your exemple's values but maybe you want something else ;)
}
int数组[24][1023];
生成代码(数组[0],2,6);
生成代码(数组[1],3,7);
...
生成代码(数组[23],4,6);//不知道你是否选择了随机值,或者你是否可以做一个循环来完成你想要的事情
对于(int i=0;i<24;i++)
{
计算(输入,数组[i],i+1);//不知道第三个参数是做什么的,所以我把i+1作为tht,对应于示例的值,但可能您还需要其他参数;)
}

可能
整数数组[24][1023]
?整数数组[24][1023];像这样声明,然后迭代每行并传递函数中需要的值非常感谢!!它起作用了:)也许
int数组[24][1023]
?int数组[24][1023];像这样声明,然后迭代每行并传递函数中需要的值非常感谢!!成功了:))