1 1

分享

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}};

三維 陣列 array c語言 程式語言

<方法一>

三維 陣列 array c語言 程式語言

<方法二>

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];

    }

}

  • 第一步
三維 陣列 array c語言 程式語言

第一步

  • 第二步
三維 陣列 array c語言 程式語言

第二步

  • 第三步
三維 陣列 array c語言 程式語言

第三步


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;

        }

    }

}

三維 陣列 array c語言 程式語言

STEP3、釋放記憶體
  

for(int i=0; i<2; i++){

    for(int j=0; j<3; j++){

        delete[] array[i][j];

    }

    delete[] array[i];

}

delete[] array;

  • 第一步
三維 陣列 array c語言 程式語言

第一步

  • 第二步
三維 陣列 array c語言 程式語言

第二步

  • 第三步
三維 陣列 array c語言 程式語言

第三步


C++ Code

三維 陣列 array c語言 程式語言

動態記憶體配置三維陣列

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)

延伸閱讀

二維陣列轉一維陣列 (C++) @匿名李 - 探路客 部落格 (timelog.to)
#三維  #陣列  #array  #c語言  #程式語言 
分類:學習

文章有錯誤的地方還請留言指正,謝謝各位。(目前C++新手教學第一章內容已完結,內容包含C++程式安裝到指標參考)。建議或意見可私訊:https://reurl.cc/ze7L9k

評論
上一篇
  • Array 二維陣列 (C++)
  • 下一篇
  • 二維陣列轉一維陣列 (C++)
  • 更多文章
    載入中... 沒有更多了