Array 三維陣列 (C++)

2021/10/10閱讀時間約 4 分鐘

三維陣列(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

備註

關於圖解記憶體配置以及釋放的部分,實際上可能不是依照圖解的方式建立以及釋放,但筆者覺得方便思考記憶,如果有詳細的配置記憶體流程可能還得請各位讀者與前輩分享指教。

參考資料

延伸閱讀

為什麼會看到廣告
匿名李
匿名李
C++新手教學正在規畫緩慢更新(圖片、內容增加、程式碼文字)_2023/04/17,文章有錯誤的地方還請留言指正,謝謝各位
留言0
查看全部
發表第一個留言支持創作者!