2017-04-22 9 views
0

私は代入を受け取りましたが、指定されていませんが、その中にポインタの使用を実装したいと思います。私が遭遇している私の問題は、私が2次元配列を正しく渡していないと信じていることです。 2回目の意味は、メインから関数に配列を渡してから、この関数から別の関数に配列を渡したいということです(これを行う適切な用語を誰かが知っていれば、それを分かち合うことができれば分かります)。 )私はすでに他のコードを書いているので、私はそれを渡している方法を提供します。私が正しく行っていれば、コード内に別のバグがあるかどうかを調べるために残りのコードを提供します。2次元配列を渡す

int main(){ 
    char seats[rows][columns] //rows and columns are global integers 
    assignSeats(&seats); 
} 
void assignSeats(char (*sPlan)[rows][columns]){ 
    assignFirstClass(sPlan); 
} 
void assignFirstClass(char (*sPlan)[rows][columns]){ 
    //user inputs for row and col 
    (*sPlan)[row][col] = 'X'; 
} 

私は配列の位置に与えている値を得ていないということだけを言いたいと思います。バグはどこか別の場所にあるかもしれませんが、最初は配列が正しく渡されていることを確認したいと思います。なぜなら、これは私にとって初めてのことなのでです。ご協力いただきありがとうございます。

SOLUTION 問題は、ポインタを渡す方法ではなかった、単にその代わりに:

(*sPlan)[row][col] = 'X'; 

私が書いた:それはちょうど私を複数回渡す行ってきました

(*sPlan)[row][col]; 

+1

[C++関数に2次元配列を渡す]の可能な重複(http://stackoverflow.com/questions/8767166/passing-a-2d-array-to-ac -function) – nitronoid

+0

ええ私はそれを見ました、そして、それは私が最初のパスをした方法です。しかし、それは第2パスを扱っていない。これは私のお問い合わせがある場所です。 –

+0

2D配列を渡すさまざまなアプローチについては、この[質問](https://stackoverflow.com/questions/8767166/passing-a-2d-array-to-acfunction)を参照してください。 – nitronoid

答えて

0

呼び出しをassignSeats(seats);に置き換え、関数のパラメータをassignSeats(char (&sPlan)[rows][columns]に変更して配列を参照渡しすることができます。これは、2番目の関数でも同じ操作を行います。

関数にも戻り値の型が必要で、2番目の関数定義に括弧がありません。

推奨修正:

#include <iostream> 

int main() 
{ 
    char seats[rows][columns]; //rows and columns are global integers 
    assignSeats(seats); 
    std::cout<<seats[row][col]; //Check the function has worked 
    return 0; 
} 

void assignSeats(char (&sPlan)[rows][columns]) 
{ 
    assignFirstClass(sPlan); 
} 

void assignFirstClass(char (&sPlan)[rows][columns]) 
{ 
    //user inputs for row and col 
    sPlan[row][col] = 'X'; 
} 
+0

悲しいことに、 –

+0

@ Jorgeどのような結果が期待されていますか、どのようにチェックしていますか? – nitronoid

+0

@ nitrooid main関数のassignSeats(seats)関数の後に現在の値を出力する別の関数を呼び出します。この割り当ての前に、私はすべてを '*'に初期化します。私がassignSeats(座席)の前にそれを印刷するとき、私はすべて*を得る。これが、最初の合格が適切に機能していることを私が知っている理由です。私は、私が取得していないassignFirstClass関数でユーザーによって選択された行と列の 'X'を期待しています。 –