這是我在C++中的代碼。在函數原型中傳遞的2D數組
void multTable(int arr[][], int maxNum);
的主要方法之前,我宣佈這個函數的原型,然後朝我的代碼底部的主要方法之後定義它。但是,我收到一個錯誤,指出多維數組必須對所有維都有界限。我不明白我該如何解決這個問題。
這是我在C++中的代碼。在函數原型中傳遞的2D數組
void multTable(int arr[][], int maxNum);
的主要方法之前,我宣佈這個函數的原型,然後朝我的代碼底部的主要方法之後定義它。但是,我收到一個錯誤,指出多維數組必須對所有維都有界限。我不明白我該如何解決這個問題。
如果您的二維數組將具有固定的列大小。你可以這樣做:
void multTable(int arr[][MAX_COLS], int maxNum);
你必須這樣稱呼它:
#define MAX_ROWS (5)
#define MAX_COLS (7)
int arr[MAX_ROWS][MAX_COLS] = {...};
multTable(arr, 7);
我收到一個錯誤,表示在函數體外部使用參數'rows'和'col'。 – user2548635
@ user2548635對不起,我犯了一個錯誤。我相應地編輯了我的答案。 –
你可以使用這個原型:
template <int ROW, int COLUMN>
void multTable(int (&arr)[ROW][COLUMN], int maxNum);
你必須提供的第二維陣列。否則,編譯器無法取消引用您的指針。這就是爲什麼你的編譯器產生錯誤
#define N 10 // just an exemple
void multTable(int arr[][N], int maxNum); // N is the 2nd dimention
什麼是'maxNum'?它與數組維度有關嗎? – Jarod42