这是我在c ++中的代码。
void multTable(int arr[][], int maxNum);
在main方法之前,我声明了这个函数原型,然后在我的代码底部的main方法之后定义它。但是,我收到一条错误,指出多维数组必须包含所有维度的边界。我不明白如何解决这个问题。
答案 0 :(得分:3)
如果您的2D阵列具有固定的列大小。你可以这样做:
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);
答案 1 :(得分:1)
您可以使用此原型:
template <int ROW, int COLUMN>
void multTable(int (&arr)[ROW][COLUMN], int maxNum);
答案 2 :(得分:1)
您必须提供数组的第二个维度。否则编译器无法取消引用您的指针。这就是你的编译器生成错误的原因
#define N 10 // just an exemple
void multTable(int arr[][N], int maxNum); // N is the 2nd dimention