错误传递2D的char *数组功能 [英] Error passing 2D char* array into a function
本文介绍了错误传递2D的char *数组功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想的char *的二维数组传递到一个函数。我得到这个错误:
不能将'字符*(*)[2]到字符***'的说法'1'到'廉政富(字符***)'
code:
INT富(CHAR ***喜)
{
...
}诠释的main()
{
字符*棒[10] [10];
回到了foo(bar);
}
解决方案
您阵 10
的char *数组
阵列,每个存储 10
的char *
指针。
这意味着,它传递给它的参数不是引用的函数时,它被转换为指针指向10的char *数组
。正确的函数参数类型是这样
INT富(字符*(*您好)[10])
{
...
}诠释的main()
{
字符*棒[10] [10];
回到了foo(bar);
}
进一步仔细阅读本<一个href=\"http://stackoverflow.com/questions/423823/whats-your-favorite-programmer-ignorance-pet-peeve/484900#484900\">Pet忌讳#2 作品。
I'm trying to pass a 2D array of char* into a function. I am getting this error:
"cannot convert 'char* (*)[2]' to 'char***' for argument '1' to 'int foo(char***)'"
Code:
int foo(char*** hi)
{
...
}
int main()
{
char* bar[10][10];
return foo(bar);
}
解决方案
Your array is an array of 10
char*
arrays, each storing 10
char*
pointers.
This means that when passing it to a function whose parameter is not a reference, it is converted to a pointer to an array of 10 char*
. The correct function parameter type is thus
int foo(char* (*hi)[10])
{
...
}
int main()
{
char* bar[10][10];
return foo(bar);
}
Read further on this Pet peeve entry on Stackoverflow.
这篇关于错误传递2D的char *数组功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文