int配列myArray[x][y]があり、これを参照によって関数に渡したいのですが、定数の境界または奇妙なポインターの回避策が必要なようです。これを適切に行うにはどうすればよいですか?
質問する
67 次
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 に答える