3-9構造体Tips183 構造体を配列にする
Level2
Point構造体を配列で利用(malloc関数、free関数、->演算子)
複数の構造体を扱うためには、C言語の配列を使います。
構造体を使う場合、id型にキャストができないため、NSArrayクラスやNSMutableArrayクラスが使えません。そのため、動的に構造体の配列を扱うときには、malloc関数でメモリを取得する必要があります。
構造体のメモリ領域の大きさは、「sizeof(構造体名)」で取得できます。このため、構造体の配列を取得する場合は、「sizeof(構造体名)*配列数」でメモリを取得します。
構造体の配列の取得は、以下のように記述します。1行目でメモリを確保、2行目でメンバ変数にアクセス、3行目でメモリを解放しています。
構造体名 *変数名 = (構造体名*)malloc
(sizeof(構造体名)*配列数);
変数名[インデックス].メンバ変数名
free(変数名);
また、ポインタを使ってアクセスする場合は、->演算子を使って、以下のように記述します。
構造体名 *変数名 = (構造体名*)malloc
(sizeof(構造体名)*配列数);
(変数名+インデックス)->メンバ変数名
free(変数名);
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録