2021-10-10|閱讀時間 ‧ 約 4 分鐘

Array 三維陣列 (C++)

三維陣列(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; i2; i++){ array[i] = new int*[3]; for(int j=0; j3; j++){ array[i][j] = new int[4]; } }
  • 第一步
第一步
  • 第二步
第二步
  • 第三步
第三步
STEP2、初始化
for(int i=0; i2; i++){ for(int j=0; j3; j++){ for(int k=0; k4; k++){ array[i][j][k]=i+j+k; printf("i=%d,j=%d,k=%d = ",i,j,k); std::coutarray[i][j][k]std::endl; } } }
STEP3、釋放記憶體
for(int i=0; i2; i++){ for(int j=0; j3; 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].
[2].

延伸閱讀

分享至
成為作者繼續創作的動力吧!
C++新手教學正在規畫緩慢更新(圖片、內容增加、程式碼文字)_2023/04/17,文章有錯誤的地方還請留言指正,謝謝各位
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

發表回應

成為會員 後即可發表留言