2017-12-23 19 views
0
do_something(int array[][]) 
{ 

} 

int main() 
{ 
    int array_length; 
    cin>> array_length; 
    int array[array_length][array_length]; 
    for() 
    { 
     "putting elements of array" 
    } 
} 

const intを入れている人がいるので、配列を関数に渡すことができます。質問は、入力するまでサイズを知らなければ、多次元配列を関数に渡す方法です。多次元配列をfunction_111に渡す

+2

ダイナミックアレイの場合は、標準アレイを使用しないでください。 'std :: vector'を使い、あなたの人生をよりシンプルにしましょう。 –

+0

'function_111'とは何ですか? – Barmar

+0

C++には可変長配列がありません。あなたの宣言 'int array [array_length] [array_length];'は無効です。 – Barmar

答えて

1
int array[array_length][array_length]; 

この行はコンパイルされません。他の言語(Java、おそらく)とは異なり、動的サイズの配列の割り当ては、一定サイズのものとは異なります。 []という表記法では、一定サイズの配列が作成されます。この配列は、array_lengthを渡す試行には使用できません。 、動的にこの配列を割り当てるあなたはarrayを反復処理し、この後

array[i] = new int[array_length]; 

で正しいサイズにそれぞれのサブ配列を割り当てる必要があります、あなたが参照する必要があります

int **array = new int*[array_length]; 

ザ・を使用するにはarray_lengthの場合、配列のサイズは唯一の目安であるため、arrayまで繰り返します。

+0

おっと、これは私がすぐに働くために得たものです。そして、はい、ベクターはこれをうまく実現しますが、素敵なツールを使う前に割り振りが実際に何をするのかを彼が学ぶ方が良いと思いました。 – Qwertycrackers