我正在尝试从main()向void函数发送一个矩阵变量,但是当我从void函数接收带有(int grid [] [],int num)的参数时,我收到一个错误:
/home/ubuntu/workspace/home/game.cpp:13:24:错误:作为多维数组的'grid'声明必须包含除第一个之外的所有维度的边界
void column(int grid[][], int num){
^
/home/ubuntu/workspace/home/game.cpp:13:25: error: expected ‘)’ before ‘,’ token
void column(int grid[][], int num){
^
/home/ubuntu/workspace/home/game.cpp:13:27: error: expected unqualified-id before ‘int’
void column(int grid[][], int num){
^
如何将grid [] []作为参数发送到void函数?
在C / C ++中,当您将数组传递给函数时,只能省略数组的第一个维度:
int grid[][20]
因为C / C ++没有真正的多维数组,只有一维数组,其中地址算术用于访问给定维度中的元素。
或者您可以从评论中使用@tadman建议并使用
std::vector<std::vector<int> > grid //or int** grid