ブール値の 2 次元配列へのポインターの配列を取得しようとしています。これはどのように達成できますか?これは Arduino 用です (C と C++ が混在していると思いますか?)
6308 次
3 に答える
5
あなたの説明に基づいて、私はあなたが次のようなものを探していると思います:
bool (*arr[K])[M][N];
それは次のように故障します
arr -- arr
arr[K] -- is a K-element array
*arr[K] -- of pointers
(*arr[K])[M] -- to M-element arrays
(*arr[K])[M][N] -- of N-element arrays
bool (*arr[K])[M][N] -- of bool
于 2013-03-07T17:48:24.947 に答える
2
C++ を使用していて、宣言からサイズを入力したくない場合は、動的に割り当てることでそれを行うことができます。
int first_dim, second_dim;
// determine dimensions somewhere inside code
// create array of pointers to booleans
bool** arr[10];
for(i = 0; i < 10; i++){
arr[i] = new bool*[first_dim];
for(j = 0; j < first_dim; j++){
arr[i][j] = new bool[second_dim];
}
}
delete
アレイの使用が終わったら、すべてのアレイを確認してください。
ノート
2 次元配列を割り当てようとしている場合、それぞれがブール値を格納する行列またはテーブルと考えないでください。たとえば、int
として宣言された s の配列を考えますint arr[i][j]
。最初の「次元」のint*
各要素は型であり、2 番目の「次元」の各要素は型int
です。したがって、実際には「配列の配列」です。
于 2013-03-07T18:16:41.590 に答える
0
ブール値の 2D 配列へのポインターの配列は次のようになります (C と C++ の両方で - 1 つを選択してください。同じ言語でも混合物でもありません)。
typedef bool TwoDBoolArr[10][10];
typedef TwoDBoolArr *TwoDBoolArrPtr;
typedef TwoDBoolArrPtr TwoDBoolArrPtrArray[10];
もちろん、最後の が必要ですtypedef
。
typedef を減らして読みやすさを減らしたい場合:
typedef bool (*TwoDBoolArrPtrArray[10])[10][10];
于 2013-03-07T17:46:48.920 に答える