0
我試圖找到一個錯誤的底部,我想知道你能幫忙嗎?目前我對數組指針有點問題。我有三個班,一個家長和兩個孩子可以這麼說。其中一個孩子有一個類型爲struct的2D數組,我試圖從另一個孩子訪問這個元素。指向類中的多維數組
我在想,這段代碼對於我的數組指針是否有效,格式和語法是否正確? 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;
}
};
感謝您的回覆。所以,我是否需要在 之上寫上「BOARDTILE(* pBoardTileArray)[18] [18];」作爲BOARDTILE(* * pBoardTileArray)[18] [18]的 ; 取而代之? 或者「BOARDTILE *(* pBoardTileArray)[18] [18];」? 如果我聲明它爲BOARDTILE ** pBoardTileArray; 我似乎得到一行轉換錯誤: pBoardTileArray =&(OChild1.BoardTileArray); 您是否有鏈接到我可以瞭解更多關於此的頁面? – Moph 2013-04-18 03:59:26
或者... BOARDTILE(*(* pBoardTileArray)[18])[18]; ? – Moph 2013-04-18 05:12:57
查看我更新的答案。 – Ali 2013-04-18 06:28:56