c++ - 为什么我在从 char 转换为 char 时出错?

标签 c++

这是我的代码:

#include <iostream>
using namespace std;

bool funkcja (char * a[3][7], char * b[7]);

int main()
{

    char T[3][7]={{'A', 'L', 'A', 'M','A', 'k', 'o'},
            {'M', 'A','M','K','O','T','A'},
            {'T', 'E','Q','U','I','L','A'}};

    char tab[7]={ 'A', 'L', 'A', 'M','A', 'k', 'o' }; 

    cout<<funkcja(T, tab)<<endl;

    return 0;
}

bool funkcja (char * a[3][7], char * b[7])
{
    int licznik=0;

    for (int i=0;i<3;i++)
    {
        for (int j=0; j<7;j++)
        {
                if (a[i][j]==b[j])
                {
                    licznik++;
                    if (licznik==7) return true;
                }
                else {
                    licznik=0;
                }
        }
        licznik=0;
    }
    return false;
}

当我尝试构建它时,我得到:

[Error] cannot convert 'char (*)[7]' to 'char* (*)[7]' for argument '1' to 'bool funkcja(char* (*)[7], char**)'

最佳答案

您的函数定义不正确。您需要更改:

bool funkcja (char * a[3][7], char * b[7])

到:

bool funkcja (char a[3][7], char b[7])

请注意,您可以省略第一个数组维度,因此可以将其简化为:

bool funkcja (char a[][7], char b[])

关于c++ - 为什么我在从 char 转换为 char 时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41943231/

相关文章:

c++ - QtConcurrent::run() 不能处理超过 5 个参数?

c++ - 图像写入功能未执行

c++ - 从基类实例调用派生类方法而无需强制转换

c++ - 用 Boost.Python 包装 Eigen 的 operator()() 时的重载分辨率

c++ - 为类成员分配内存

c++ - C++ 中的编译时函数是什么?

c++ - 删除 vector 元素导致程序崩溃

c++ - OpenCV视差图从左切

c++ - C2400 内联汇编语法错误,对比 2015

c++ - 除了在构造函数参数中,我可以更改 FL_Window 的标题吗?