構造体についての質問です。
struct HOGE {
int height, flag;
};
struct MOEMOE {
struct HOGE *hoge[10];
struct HOGE hoge0[10];
};

struct HOGE *func_hoge(struct MOEMOE *moemoe)
{
struct HOGE *hoge;
int i;
for (i = 0; i < 10; i++) {
if (moemoe->hoge[i].flag == 0) {
hoge = &moemoe->hoge0[i];
hoge->flag = 1
hoge->height = -1
moemoe->hoge[i]->height = 100;
return hoge;
}
}
return 0
}
という関数があった場合、1.return hogeでhoge0[i]のアドレスが返されるのは、
hogeがポインタだからですよね。構造体タグは構造体のアドレスを返すといった配列みたいな決まりはないですよね。
2.moemoe->hoge[i]->height = 100;はmoemoeのメンバであるhoge(hoge0のアドレスが入っている)のメンバの
height(実質hoge0のheight)に100を代入すると言う意味で良いんですよね。