0

エラーの真相を突き止めようとしているのですが、助けていただけないでしょうか? 現在、配列ポインタに少し問題があります。いわば、3つのクラス、1人の親、2人の子供がいます。子の 1 つに struct 型の 2D 配列があり、もう 1 つの子からこの要素にアクセスしようとしています。

このコードは、配列ポインターの正しい形式/構文で有効ですか? OChild1 は 2D 配列を作成して入力します。そのポインターを Parent に保存し、そのポインターを OChild2 に渡します。その後、配列の内容を使用してさらに処理する予定です。

struct BOARDTILE
{
    float fPosX;
    float fPosY;

    BOARDTILES()
    {
        fPosX = 0.0f;
        fPosY = 0.0f;
    }
};

class CChild1
{
    public:
        BOARDTILE BoardTileArray[18][18];

    CChild1()
    {
    }

    writeBoardTileArray()
    {
        for (int i = 0; i <= 17; i++)
        {
            for (int j = 0; j <= 17; j++)
            {
                BoardTileArray[i][j].fPosX = (float) i * 5.0f;
                BoardTileArray[i][j].fPosY = (float) j * 7.0f;
            }
        }
    }
};

class CChild2
{
    public:
        BOARDTILE (*pBoardTileArray)[18][18];
        float fPosX;
        float fPosY;

    CChild2()
    {
    }

    void readBoardTileArray()
    {
        for (int i = 0; i <= 17; i++)
        {
            for (int j = 0; j <= 17; j++)
            {
                fPosX = (*pBoardTileArray[i][j]).fPosX;
                fPosY = (*pBoardTileArray[i][j]).fPosY;
                cout << fPosX;
                cout << fPosY;
            }
        }
    }

};

class CParent
{
    public:
        BOARDTILE (*pBoardTileArray)[18][18];
        CChild1 OChild1;
        CChild2 OChild2;

    CParent()
    {
        OChild1.writeBoardTileArray();
        pBoardTileArray = &(OChild1.BoardTileArray);
        OChild2.pBoardTileArray = pBoardTileArray;
    }
};
4

1 に答える 1