Coo*_*une 1 c++ arrays casting char
我正在尝试将 char* 的二维数组传递给函数。我收到此错误:
"cannot convert 'char* (*)[2]' to 'char***' for argument '1' to 'int foo(char***)'"
Run Code Online (Sandbox Code Playgroud)
代码:
int foo(char*** hi)
{
...
}
int main()
{
char* bar[10][10];
return foo(bar);
}
Run Code Online (Sandbox Code Playgroud)
您的数组是10 char*数组的数组,每个数组都存储10 char*指针。
这意味着当将其传递给参数不是引用的函数时,它会被转换为pointer to an array of 10 char*. 因此,正确的函数参数类型是
int foo(char* (*hi)[10])
{
...
}
int main()
{
char* bar[10][10];
return foo(bar);
}
Run Code Online (Sandbox Code Playgroud)
进一步阅读Stackoverflow 上的Pet peeve条目。
| 归档时间: |
|
| 查看次数: |
2437 次 |
| 最近记录: |