内部構造体に含まれるアイテムの数を追跡したい場合は、ネストされた構造体を使用する傾向があります。だから私は通常、次のことを行います。
typedef struct Product {
char *name;
int qty;
} Prods;
typedef struct Category {
char *name;
int qty;
int prods_count;
Prods *prod;
} Cats;
次に、次のようにデータにアクセス/解放できます。
Cats *cat = malloc(sizeof(Cats));
cat->prods_count = 10;
cat->prod = malloc(cat->prods_count, sizeof(Prods));
cat->prod[0].name = malloc(15);
strcpy(cat->prod[0].name, "Hello World!!!");
cat->prod[0].qty = 100;
for (i=0; i<cat->prods_count; i++)
free(cat->prod[i].name);
...
1つだけでこれを行う方法があるかどうか疑問に思っていstruct
ますか?