2015-01-11 6 views
2

읽기 전용 모드의 함수에 2D 포인터/배열을 전달하고 싶습니다. 나는 1D 케이스를 위해 그것을 시도했지만, 원하는대로 작동했지만 2D 배열의 경우에는 그렇지 못했습니다!C++에서 1 번 인수를 'int **'에서 'const int **'로 변환 할 수 없습니다.

오류 메시지가

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

이며, 내 코드는 여기에 당신은 const에 의해 모두 포인터 수준을 취할 필요

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

입니다.

void test_constdpointer(int const* const* pda)