1

2次元配列を持つ構造があります。この構造体へのポインターを関数に渡します。そこで 2 次元配列を編集する必要があります。関数内から 2 次元配列を参照するための正しい構文を見つけるのに苦労しています。

#define TG_WIDTH 10
#define TG_HEIGHT 20

typedef enum {
   BLOCK_T = 0,
   BLOCK_LINE,
   BLOCK_SQUARE,
   BLOCK_L,
   BLOCK_L_REVERSE,
   BLOCK_S,
   BLOCK_S_REVERSE
} block_t;

typedef struct {
   char y_max[TG_WIDTH];
   block_t grid[TG_WIDTH][TG_HEIGHT];
} scratchpad_t;

bool
placeBlock(scratchpad_t *sp) {
   block_t (*g)[TG_WIDTH] = sp->grid;

   g[1][2] = BLOCK_T;
}

ただし、これにより、「互換性のないポインター型からの初期化」という警告が表示されます。ここで「g」を定義/初期化する正しい方法は何ですか?

4

2 に答える 2