構造体を配列にしたイメージ
前回は構造体の概要について解説しました(前回の記事)。今回は構造体を配列にしてみようと思います。構造体を配列化することで沢山のデータを少ないコードで宣言することができます。下記資料が構造体を配列にしたイメージです。

基本的には変数を配列にした時と同じイメージで、違いは配列化した変数の中にメンバー変数が入っていることです。続いて実際にコードを書いて動かして見ます。
コード
#include <stdio.h>
#define ARR_NUM 2
struct cat{
char *name; //名前
int weight; //体重
int age; //年齢
};
int main()
{
struct cat cat[ARR_NUM]; //猫の配列
cat[0].name="kyle";
cat[0].weight=4;
cat[0].age=12;
cat[1].name="riri";
cat[1].weight=6;
cat[1].age=10;
for(int i=0;i<ARR_NUM;i++)
{
printf("cat%d.name=%s\n",i,cat[i].name);
printf("cat%d.weight=%d\n",i,cat[i].weight);
printf("cat%d.age=%d\n",i,cat[i].age);
printf("--------------------------------------\n");
}
return 0;
}
Option Explicit
Const ARR_MAX As Integer = 1
'構造体の宣言
Type cat
name As String
weight As Integer
age As Integer
End Type
Sub testStruct()
Dim cat(1) As cat '構造体の作成
Dim i As Integer
'メンバー変数に代入
cat(0).name = "kyle"
cat(0).weight = 4
cat(0).age = 12
cat(1).name = "riri"
cat(1).weight = 6
cat(1).age = 10
'出力
For i = 0 To ARR_MAX
Debug.Print ("cat" + CStr(i) + ".name=" + CStr(cat(i).name))
Debug.Print ("cat" + CStr(i) + ".weight=" + CStr(cat(i).weight))
Debug.Print ("cat" + CStr(i) + ".age=" + CStr(cat(i).age))
Debug.Print ("----------------------------------------------")
Next i
End Sub
コードを実行すると、
cat0.name=kyle
cat0.weight=4
cat0.age=12
cat1.name=riri
cat1.weight=6
cat1.age=10
上記のように出力したと思います。今回のテストコードのように2つ構造体であれば配列を使う必要はないかもしれませんが、100個の構造体を作りたい場合は配列にした方がコードを書く時間が短縮できて楽になります。
次回は実際にデータを入力する簡易ツールを構造体を使って作ってみます。