iPhone/iPadアプリ開発逆引き大全500の極意

プログラミングの基礎 - Tips183 構造体を配列にする

登録タグ
iOS
Icon comment count 0
Icon stock count 0

3-9構造体Tips183 構造体を配列にする

Level2

Point構造体を配列で利用(malloc関数、free関数、->演算子)

複数の構造体を扱うためには、C言語の配列を使います。

構造体を使う場合、id型にキャストができないため、NSArrayクラスやNSMutableArrayクラスが使えません。そのため、動的に構造体の配列を扱うときには、malloc関数でメモリを取得する必要があります。

構造体のメモリ領域の大きさは、「sizeof(構造体名)」で取得できます。このため、構造体の配列を取得する場合は、「sizeof(構造体名)*配列数」でメモリを取得します。

構造体の配列の取得は、以下のように記述します。1行目でメモリを確保、2行目でメンバ変数にアクセス、3行目でメモリを解放しています。

構造体名 *変数名 = (構造体名*)malloc
(sizeof(構造体名)*配列数); 変数名[インデックス].メンバ変数名 free(変数名);

また、ポインタを使ってアクセスする場合は、->演算子を使って、以下のように記述します。

構造体名 *変数名 = (構造体名*)malloc
(sizeof(構造体名)*配列数); (変数名+インデックス)->メンバ変数名 free(変数名);

出典情報

Medium

iPhone/iPadアプリ開発逆引き大全500の極意

  • 著者: 増田 智昭, 池谷 京子

コメント

    コメントはありません