0

通常情況下,我有一個n×n的二維數組,我用這個代碼把它傳遞給一個函數:我該如何修改這個以使用3D數組?

void func(int *x, const int &n){ 

int (*r)[n]=(int (*)[n])x; 
// I can use r now with subscript operator as usual, r[i][j] and everything works fine 

} 

而且我把它叫做:

int r[n][n]; 

func(&r[0][0],n) 

所以它可以讓我使用數組在使用下標運算符r [i] [j]的函數內,不必每次調用函數時手動更改維度參數。我的問題是,我應該如何修改它以使用3D?該代碼不友好,我不知道如何更改此部分:

int (*r)[n]=(int (*)[n])x; 

要在3D中工作。謝謝。

回答

0

您需要添加一個維度;

int (*r)[n][n]=(int (*)[n][n])x;