2013-08-01 100 views
0

如何將三維數組的二維和三維(絕對是二維數組)複製到另一個三維數組中? 以下代碼生成一個空數組(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 
    } 

回答

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存儲陣列。或者直接使用上面的代碼。也就是說,你可能在整個項目中有更重要的工作要做?

+0

謝謝,但我真的想使用「memcopy」或任何高性能複製工具,因爲這個程序也將用於大型數組。 –