C++无法将参数 1 从 'int**' 转换为 'const int **'

C++ cannot convert argument 1 from 'int**' to 'const int **'

本文关键字:int 转换 const C++ 参数      更新时间:2023-10-16

我想将二维指针/数组传递给只读模式下的函数。我尝试了 1D 案例,它按照我想要的方式工作,但对于 2D 阵列,它没有!

错误消息是

cannot convert argument 1 from 'int**' to 'const int **'

我的代码在这里

void test_constdpointer(int const** pda){
    cout << "function: n";
    for (int i = 0; i < 3; i++) {
        cout << pda[i][0] << " " << pda[i][1] << " " << pda[i][2] << "n";
    }
}
int _tmain(int argc, _TCHAR* argv[])
{
    int **da;
    da = new int*[3];
    for (int i = 0; i < 3; i++) {
        da[i] = new int[3];
    }
    for (int i = 0; i < 3; i++) {
        cout << da[i][0] << " " << da[i][1] << " " << da[i][2] << "n";
    }
    test_constdpointer(da);
    return 0;
}
您需要将

两个指针级别都取const

void test_constdpointer(int const* const* pda)