Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么在将此2D数组传递给函数时出错?_C++_Arrays - Fatal编程技术网

C++ 为什么在将此2D数组传递给函数时出错?

C++ 为什么在将此2D数组传递给函数时出错?,c++,arrays,C++,Arrays,当我尝试将sales数组传递给函数时,我得到以下结果:error C2664:“printArray”:无法将参数1从“int[4][5]”转换为“int” 以下是数组和调用: int sales[4][5], row, column; for (row = 0; row < 4; row++) { for (column = 0; column < 5; column++) { cin >>

当我尝试将sales数组传递给函数时,我得到以下结果:error

C2664:“printArray”:无法将参数1从“int[4][5]”转换为“int”

以下是数组和调用:

    int sales[4][5], row, column;

    for (row = 0; row < 4; row++)
    {
        for (column = 0; column < 5; column++)
        {
            cin >> sales[row][column];
        }
    }

printArray(sales);
int sales[4][5],行、列;
用于(行=0;行<4;行++)
{
用于(列=0;列<5;列++)
{
cin>>销售[行][列];
}
}
打印阵列(销售);
下面是函数:

void printArray(int A[4][5])
{
  for(int R=0;R<4;R++)
  {
     for(int C=0;C<5;C++)
        cout<<setw(10)<<A[R][C];
     cout<<endl;
   }
}
void打印数组(int A[4][5])
{
对于(int R=0;R试试这个

void printArray(int A[][5])
{
  for(int R=0;R<4;R++)
  {
     for(int C=0;C<5;C++)
        cout<<setw(10)<<A[R][C];
     cout<<endl;
   }
}
您可以将指针传递给指针

void printArray(int *A[4])
void printArray(int **A)

您应该将printArray函数修改为如下内容:

void printArray(int *A, int row, int col)
{
  for(int R=0;R<row;R++)
  {
     for(int C=0;C<col;C++)
        cout<<A[R * col +  C] << endl;
   }
}

注意:将行和列计数作为值传递给函数

函数原型应仅为printArray(int A[][5])请看一看,确保函数定义上的prototype参数相同谢谢您的帮助。我删除了4并阅读了这些链接。对我来说,这看起来不错,但我仍然得到相同的转换错误。@mr5您能详细说明吗?谢谢,但我在使用该代码时遇到此错误:错误C2664:“printArray”:无法转换参数r 1从'int*'到'int[][5]'您如何调用该函数?您必须传递销售地址[0][0]
  printArray(&sales[0][0], 5, 5);