2015-01-11 200 views
2

我想在只讀模式下將2D指針/數組傳遞給函數。我試過這樣的一維情況,它按我的意思工作,但是對於二維陣列它沒有!C++無法將參數1從'int **'轉換爲'const int **'

的錯誤消息是

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; 
} 

回答

3

您需要通過const採取兩個指針水平。

void test_constdpointer(int const* const* pda) 
相關問題