【问题标题】:C++ cannot convert argument 1 from 'int**' to 'const int **' [duplicate]C ++无法将参数1从'int **'转换为'const int **' [重复]
【发布时间】:2015-03-09 02:37:26
【问题描述】:

我想以只读模式将二维指针/数组传递给函数。我在 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;
}

【问题讨论】:

    标签: c++ arrays pointers constants argument-passing


    【解决方案1】:

    您需要通过const 获取两个指针级别。

    void test_constdpointer(int const* const* pda)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-12
      • 2018-11-25
      • 1970-01-01
      • 2014-04-02
      • 1970-01-01
      相关资源
      最近更新 更多