定義 uint8_t cube[5][5][5];,需傳入函數處理並返回結果。
void process(uint8_t cube[5][5][5]);void process(uint8_t cube[][5][5]);void process(uint8_t (*cube)[5][5]);void process(uint8_t *cube, int dim1, int dim2, int dim3);
// 調用
process(&cube[0][0][0], 5, 5, 5);
// 或強轉
process((uint8_t*)(void*)cube, 5, 5, 5);
三維數組在內存中連續存儲,按最後一維最快變化(行主序)。cube[i][j][k] 偏移量 = (i * D2 * D3 + j * D3 + k) * sizeof(uint8_t)。方式 4 手動計算偏移,適用於運行時才知維度的場景。
void process(uint8_t cube[][5][5]) {
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
for (int k = 0; k < 5; k++)
cube[i][j][k] ^= 0xFF; // 直接按下標訪問
}
uint8_t ***cube —— 三維數組不是**三級指針。const;唯讀請加 const。