0
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;
}

上記のコードは機能しますか?

4

1 に答える 1