三维阵列的第二维和第三维

时间:2013-08-01 19:15:25

标签: arrays visual-c++

如何将三维数组的第二维和第三维(绝对是一个二维数组)复制到另一个三维数组中? 以下代码生成一个空数组(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
    }

1 个答案:

答案 0 :(得分: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存储行主要形式的数据这一事实的版本。或者只是按原样使用上面的代码。也就是说,您可能需要在整个项目中处理更重要的任务?