-2

int配列myArray[x][y]があり、これを参照によって関数に渡したいのですが、定数の境界または奇妙なポインターの回避策が必要なようです。これを適切に行うにはどうすればよいですか?

4

2 に答える 2

0

自動保存期間のある配列には、常にコンパイル時定数の範囲が必要です。GCCのコンパイル時定数ではないint array[x];場所で実行できるという事実は、移植性のない拡張機能にすぎません。x実際、関数を参照してこのような非標準の配列を渡すことはできません。

配列と一緒に境界を渡すこともできますが、などの標準コンテナを使用する方がはるかに優れていますstd::vector

于 2013-02-12T15:12:21.470 に答える
0

試す:

template<int X, int Y>
void ArrayFn( int (&in)[X][Y] )
{
    in[X-1][Y-1] = 666; // or whatever
}

そしてそれを次のように呼びます:

int arr[3][3];
ArrayFn( arr );
于 2013-02-12T15:24:37.037 に答える