在函数原型中传递的 2D 数组

2D array passed in function prototype

本文关键字:2D 数组 函数 原型      更新时间:2023-10-16

这是我的 c++ 代码。

void multTable(int arr[][], int maxNum);
在 main 方法

之前,我声明了这个函数原型,然后在代码底部的 main 方法之后定义了它。但是,我收到一个错误,指出多维数组必须对所有维度都有边界。我不明白我该如何解决这个问题。

如果您的 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);

您可以使用此原型:

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