2010-09-01 61 views
0

我目前正在爲iPhone/iPod/iPad開發一款遊戲。爲了存儲12行乘8行的電路板數據,我有一個數組存儲指向其中一個遊戲項目的指針,一個塊。它的聲明如下:遊戲開發 - 陣列與陣列元素指針

BlockData* mBoard[kNumberOfColumns][kNumberOfRows]; 

我也有另一個數組聲明如下:

BlockData* mCenterSquare[16]; 

這是我想要存儲的指針到板上的特定位置,例如,

mCenterSquare[0] = mBoard[4][5]; 

這是正確的做法嗎?我想使用上面的代碼行完成的是mCenterSquare [0]存儲指向板上位置的指針 - 第4列和第5行。我會如何去做這件事?

在此先感謝。

回答

0

我不禁想到這是個詭異的問題。是的,這是你會這樣做的方式。 :)

+0

它並不雖然編譯。 。 。 – benkraus 2010-09-02 05:01:18

+0

@ macdude93:這是合法的語法(它爲我編譯)。 BlockData是一個typedef?你得到的編譯錯誤是什麼? – 2010-09-02 18:20:46

+0

我的錯誤 - 我覺得很愚蠢。沒有;在最後的聲明之後。荒謬。在發佈之前,我甚至沒有看到錯誤。必須已經累了。 – benkraus 2010-09-02 22:22:42

1

爲什麼不能只用mCenterSquare陣列來存儲數據:

function BlockData* getBlockData(int row, int col) { 
    return mCenterSquare[row * kNumberOfCols + col] 
} 
+0

Whate行* kNumberOfCols + col應該做的? – benkraus 2010-09-02 05:05:33

+0

爲每個{row,col}對查找唯一索引。 – Avall 2010-09-02 16:19:36