0

如何将绝对是二维数组的 3 维数组的第二维和第三维复制到另一个 3 维数组中?以下代码生成一个空数组 (b)。以下只是概念代码。

   int a[ 12 ][ 51 ][ 4 ];
    int b[ 20 ][ 51 ][ 4 ];  
    int main()
       int i;
        for( i= 0; i< 12 ; i++)
        {
            memcpy(b[i], a, sizeof(a));
            }
        return 0
    }
4

1 回答 1

0

首先,不要担心效率。这些数据的规模非常小,因此任何效率方面的考虑都无关紧要。因此,不要在这个问题中使用 memcpy。相反,尝试更明确的方法:

   int a[ 12 ][ 51 ][ 4 ];
   int b[ 20 ][ 51 ][ 4 ];  
   int main()
   {
        int eni, i, j;
        for( eni = 0; eni < 12 ; eni++)
        {
          for (i = 0; i < 51; i++)
          {
             for (j = 0, j < 4; j++)
             {
              b[eni][i][j] = a[eni][i][j];
             }
          }
        }
        return 0;
  }
  // Note. the above code has not been tested, I just threw-it-up here for discussion.

当你有这个工作时,然后尝试使用 C 以行主要形式存储数组这一事实的版本。或者直接使用上面的代码。也就是说,您可能在整个项目中有更重要的任务需要处理?

于 2013-08-01T19:27:44.827 回答