将二维数组传递给函数时,无法将参数“1”的 'char(*)[50]' 转换为 'char**' 到 'void prac(char**)'
`Cannot convert 'char(*)[50]' to 'char**' for argument '1' to 'void prac(char**)'` when passing a 2D array to a function
我想将二维字符数组传递给函数。
然而,出现错误:
Cannot convert 'char(*)[50]' to 'char**' for argument '1' to 'void prac(char**)'
如何修复代码?请帮我。
代码:
#include <iostream>
using namespace std;
void prac(char **b)
{
for(int i=0;i<50;i++)
{
for(int j=0;j<50;j++)
{
cout << b[i][j] << " ";
}
cout << endl;
}
}
int main()
{
char a[50][50];
for(int i=0;i<50;i++)
{
for(int j=0;j<50;j++)
{
cin >> a[i][j];
}
}
prac(a); // error position
return 0;
}
二维数组的名称被转换 ("decay") 为指向数组第一行地址的指针。所以使用
void prac(char b[][50])
或
void prac(char (*b)[50])
而不是
void prac(char **b)
您的编译器报错,因为 a
无法转换为 char**
。
我想将二维字符数组传递给函数。
然而,出现错误:
Cannot convert 'char(*)[50]' to 'char**' for argument '1' to 'void prac(char**)'
如何修复代码?请帮我。
代码:
#include <iostream>
using namespace std;
void prac(char **b)
{
for(int i=0;i<50;i++)
{
for(int j=0;j<50;j++)
{
cout << b[i][j] << " ";
}
cout << endl;
}
}
int main()
{
char a[50][50];
for(int i=0;i<50;i++)
{
for(int j=0;j<50;j++)
{
cin >> a[i][j];
}
}
prac(a); // error position
return 0;
}
二维数组的名称被转换 ("decay") 为指向数组第一行地址的指针。所以使用
void prac(char b[][50])
或
void prac(char (*b)[50])
而不是
void prac(char **b)
您的编译器报错,因为 a
无法转换为 char**
。