Array 二維陣列 (C++)

Array 二維陣列 (C++)

更新於 發佈於 閱讀時間約 3 分鐘

二維陣列(Two-dimensional array)

基本方法

int array[2][2]={{1,2},{3,4}};
二維陣列基本方法

二維陣列基本方法

Output

array[0][0] = 1
array[1][0] = 3


動態配置

STEP1、配置記憶體

int** array = new int*[2]; //第一步

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

array[i] = new int[3]; //第二步

}
  • 第一步
配置記憶體

配置記憶體

  • 第二步
配置記憶體

配置記憶體

STEP2、初始化

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

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

array[i][j] = i+j;

}

}

陣列初始化

[ array[0][0] = 0, array[0][1] = 1, array[0][2] = 2

array[1][0] = 1, array[1][1] = 2, array[1][2] = 3 ]
2x3陣列

2x3陣列

STEP3、釋放記憶體

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

delete[] array[i]; //第一步

}

delete[] array; //第二步

陣列釋放記憶體

  • 第一步
釋放記憶體

釋放記憶體

  • 第二步
釋放記憶體

釋放記憶體


C++ Code

二維陣列動態記憶體配置

二維陣列動態記憶體配置

Output

array[0][0] = 0
array[1][2] = 3



備註

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


參考資料

[1]. 如何在 C++ 中使用 new 宣告 2D 陣列 | D棧 - Delft Stack

[2]. 二維(多維)陣列 (openhome.cc)



延伸閱讀

Array 三維陣列 (C++) @匿名李 - 探路客 部落格 (timelog.to)

avatar-img
匿名李的沙龍
6會員
46內容數
這是新手寫給新手的學習程式語言基礎教學筆記,內容會以C++為主
留言
avatar-img
留言分享你的想法!
匿名李的沙龍 的其他內容
一維陣列(One dimension array)
問題:HTC的手機連接上自拍棒的藍芽後,點選拍照卻是調整音量,而不是拍照
一維陣列(One dimension array)
問題:HTC的手機連接上自拍棒的藍芽後,點選拍照卻是調整音量,而不是拍照