【问题标题】:Simplify numerous array declarations in C简化 C 中的大量数组声明
【发布时间】:2021-01-07 12:22:44
【问题描述】:

我对编程完全陌生,所以请与我交谈。 我有 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 arrays[24][1023]?
  • int 数组[24][1023];像这样声明,然后迭代每一行并传递函数中需要的值

标签: arrays c loops


【解决方案1】:

你可以像这样声明一个 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 ;)
}

【讨论】:

    【解决方案2】:

    如果你有整数数组,比如

    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 );
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      相关资源
      最近更新 更多