错误传递2D的char *数组功能 [英] Error passing 2D char* array into a function

查看:97
本文介绍了错误传递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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆