我在C++中使用三維數組指針遇到了一些困難。我一直的一個Q[3][N][N]
數組,我想傳遞給函數在[0][i][j]
位置打印的值(和也爲[1][i][j]
和[2][i][j]).
我怎樣才能做到這一點呢?是更方便地使用Q[i][j][0]
等?如何通過C++中的指針來處理3D數組
爲2D,當我給下面這段代碼只是正常& Q [0] [0]到* VAR:
template <typename T>
void print2d(T *var, int I, int J){
cout << endl;
for (int j = 0; j < J; j++){
for (int i = 0; i < I; i++){
cout << setprecision(3) << setw(12) << *(var + (N*i + j));
}
cout << endl;
}
cout << endl;
}
我用同樣的方法來編寫3D類似的功能,不寫出正確的值: 任何人都可以讓我知道指向正確地址的正確方法Q[i][j][1]
。在輸入參數中,我給出了Q [0] [0] [0]的地址。如果我想寫出特定的k值,我應該使用不同的地址(如Q [i] [j] [1])嗎?
template <typename T>
void print3d(T *var, int I, int J, int K){
cout << endl;
for (int j = 0; j < J; j++){
for (int i = 0; i < I; i++){
cout << setprecision(3) << setw(12) << *(var + I*J*i + I*j + K);
}
cout << endl;
}
cout << endl;
}
究竟是什麼「困難」?我們無法幫助解決沒有信息的問題。 – Avery
我想寫一個關於i(或k)的Q [i] [j] [k]。 – Pranav
'N'編譯時間是否已修復? – WhozCraig