struct A
{
struct one
{
int c;
} details[MAX];
};
struct B
{
struct two
{
int a;
A::one b
} details[MAX];
};
構造体 A の構造体の詳細配列を検証するために、以下のように使用される検証関数があります。
bool ValidateOne(struct one * ptr)
{
struct one * tmp[MAX];
for (int i = 0; i < MAX; ++i)
tmp[i] = ptr+i;
Validate(tmp[0]);
}
次に、構造体 B の詳細配列に対して検証を行う必要があります。
bool ValidateTwo(struct two * ptr)
{
struct one * tmp[MAX];
for (int i = 0; i < MAX; ++i)
tmp[i] = &((ptr+i)->b);
Validate(tmp[0]);
//validate other stuff
};
Validate(struct one * ptrs[])
{
int count;
for (int i = 0; i < MAX; ++i)
count += ptrs[i]->a;
}
上記のコードは機能しますか?