2017-04-08 18 views
0

動的に作成された配列を関数の引数として渡す方法を知る人がいますか?動的に作成された配列を引数として渡す

次のように私は2次元動的配列を作成しました:

//matrix rows and columns 
int rows=0; 
int cols=0; 


int** matrix = new int*[rows]; 

//creates the matrix 
for (int i =0; i < rows; ++i) 
    matrix[i] = new int[cols]; 

私はこのようなプロトタイプを持つ関数にこの配列を渡したいのですが:

void readMatrix(int **matrix[], int size); 

私はできませんこれを行う方法を理解してください!私は議論がどのように見えるかわからない、私は多くの異なる方法を試してきたし、何も働かない。 「式が期待されている」または「引数がパラメータと一致しない」というエラーを取得する

+3

注:(現代的な)方法は、生の配列の代わりに 'std :: vector'または' std :: array'を使う方法です – UnholySheep

+0

'readMatrix(matrix、 size) ' – chbchb55

+3

' int ** matrix [] 'これは基本的に' int *** matrix'です。それで '&matrix'のように渡します。 –

答えて

2

この関数は、タイプがint ***matrixに相当するタイプのint **matrix[]を指定します。だからあなたが必要とするのは別の間接的なことです。引数として&matrixを使用してください。

また、コメントに記載されているように、より現代的なstd::vector<>を優先してプレーンアレイを使用するという考え方全体を再考してください。

関連する問題