我對傳遞一個2D數組有點困惑。 示例:傳遞一個2D數組
void out(int **a){.....};
void out2(int a[][]){......};
main() {
int arra[2][5];
out (arra);
out2(arra);
}
我可以通過兩種方式傳遞數組嗎? 傳遞二維數組的最佳方式是什麼?爲什麼?
我對傳遞一個2D數組有點困惑。 示例:傳遞一個2D數組
void out(int **a){.....};
void out2(int a[][]){......};
main() {
int arra[2][5];
out (arra);
out2(arra);
}
我可以通過兩種方式傳遞數組嗎? 傳遞二維數組的最佳方式是什麼?爲什麼?
您可以通過參考與該醜陋語法傳遞數組:
void out3(int (&a)[2][5]){}
main() { int a[2][5]; out3(a); }
最好使用std::array<std::array<int, 5>, 2>
或std::vector
。
void out2(int a [] [5])就是這樣,但也許你應該使用std :: array? – Guiroux 2015-03-13 14:27:42
我從來沒有使用std :: array。當我嘗試以第一種方式傳遞時,我得到:void out(int **)':不能將參數1從'int [2] [3]'轉換爲'int **' – Geech 2015-03-13 14:32:36
我告訴過你,必須使用數組語法並指定每個昏暗但第一個 – Guiroux 2015-03-13 14:41:12