三維陣列(Three-dimensional array)
基本方法
<方法一>
int array[2][2][2]={1,2,3,4,5,6,7,8};
<方法二>
int array[2][2][2]={{1,2,3,4},{5,6,7,8}};

<方法一>

<方法二>
Output
i=0,j=0,k=0
1
i=0,j=0,k=1
2
i=0,j=1,k=0
3
i=0,j=1,k=1
4
i=1,j=0,k=0
5
i=1,j=0,k=1
6
i=1,j=1,k=0
7
i=1,j=1,k=1
8
動態配置
STEP1、配置記憶體
int*** array = new int**[2];
for(int i=0; i<2; i++){
array[i] = new int*[3];
for(int j=0; j<3; j++){
array[i][j] = new int[4];
}
}
- 第一步

第一步
- 第二步

第二步
- 第三步

第三步
STEP2、初始化
for(int i=0; i<2; i++){
for(int j=0; j<3; j++){
for(int k=0; k<4; k++){
array[i][j][k]=i+j+k;
printf("i=%d,j=%d,k=%d = ",i,j,k);
std::cout<<array[i][j][k]<<std::endl;
}
}
}

STEP3、釋放記憶體
for(int i=0; i<2; i++){
for(int j=0; j<3; j++){
delete[] array[i][j];
}
delete[] array[i];
}
delete[] array;
- 第一步

第一步
- 第二步

第二步
- 第三步

第三步
C++ Code

動態記憶體配置三維陣列
Output
i=0,j=0,k=0 = 0
i=0,j=0,k=1 = 1
i=0,j=0,k=2 = 2
i=0,j=0,k=3 = 3
i=0,j=1,k=0 = 1
i=0,j=1,k=1 = 2
i=0,j=1,k=2 = 3
i=0,j=1,k=3 = 4
i=0,j=2,k=0 = 2
i=0,j=2,k=1 = 3
i=0,j=2,k=2 = 4
i=0,j=2,k=3 = 5
i=1,j=0,k=0 = 1
i=1,j=0,k=1 = 2
i=1,j=0,k=2 = 3
i=1,j=0,k=3 = 4
i=1,j=1,k=0 = 2
i=1,j=1,k=1 = 3
i=1,j=1,k=2 = 4
i=1,j=1,k=3 = 5
i=1,j=2,k=0 = 3
i=1,j=2,k=1 = 4
i=1,j=2,k=2 = 5
i=1,j=2,k=3 = 6
備註
關於圖解記憶體配置以及釋放的部分,實際上可能不是依照圖解的方式建立以及釋放,但筆者覺得方便思考記憶,如果有詳細的配置記憶體流程可能還得請各位讀者與前輩分享指教。
參考資料
[1]. C++ 建立三維陣列的幾種方法 - IT閱讀 (itread01.com)
[2]. [C語言] - 指標及多維陣列 | Ivan’s Blog (ivan7645.github.io)