1

私は構造を得た

typedef struct 
{char *cells;}
 Map;

セルは行の配列へのポインターであると想定されます(行内はすべての位置の整数です)。たとえば、2. 行の 3. 位置の番号にアクセスする方法がわかりません。私はいくつかの配列[3] [3]を見つめましたが、それらをこの構造体に接続する方法がわかりません。私は試した

Map nextmap;
nextmap.cells[0] = array[0][0];

しかし、最初の数字しか得られませんでした。これは明らかです。他のポジションに行くにはどうすればよいですか?前もって感謝します。編集:構造の名前を変更.. .

4

3 に答える 3

1

配列が与えられた場合char array[][NumberOfColumns](最初の次元は無関係であり、ここでは省略されています。配列を定義するときに必要になります)、配列の最初の要素へのポインターを次のように設定できます。

nextmap.cells = &array[0][0];

array[i][j]次に、次の 2 つの式のいずれかを使用して、配列内の位置を計算することにより、配列内の要素 にアクセスできます。

*(nextmap.cells + i*NumberOfColumns + j)
nextmap.cells[i*NumberOfColumns + j]

一般に、2 次元配列は 2 次元配列としてアドレス指定する必要があります。手動で位置を計算することは、正当な理由がない場合は適切ではありません。この学校の課題に正当な理由がなかった場合、それは悪い課題です。

于 2013-09-27T23:43:35.270 に答える