1

ブール値の 2 次元配列へのポインターの配列を取得しようとしています。これはどのように達成できますか?これは Arduino 用です (C と C++ が混在していると思いますか?)

4

3 に答える 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 に答える