0

このような多次元動的配列を作成しました

int N;
cin >> N;
bool ** hap = new bool*[N];

for(int i = 0; i < N; i++)
hap[i] = new bool[N];

そして、うまくいくようですが、この配列を関数に渡す必要があります...

どうすればいいですか?

ありがとう

4

2 に答える 2

2

宣言したとおりに渡します。ブール**として。定義の例を次に示します。

void myFunc(bool** param)
{
    // Do stuff with param here, indexing it normally
}

次に、次のように関数を呼び出すことができます。

myFunc(hap);
于 2012-12-17T17:20:31.997 に答える
1

基本的に、多次元配列を返す場合と同じことが適用されます

  1. ここではポインタと生メモリ管理を使用しないでください。
  2. 配列を表すオブジェクトを (const) 参照で渡します。
void f(matrix_2d const& mat) {
    // do something.
}

matrix_2d mat = { {1, 2}, {3, 4} };
f(mat);

の適切な定義についてはmatrix_2d、例えば:

using matrix_2d = std::vector<std::vector<int>>;

(このコードには C++11 が必要ですが、原則として以前と同じことが当てはまります。)

于 2012-12-17T17:23:44.660 に答える