[問題] 動態配置矩陣的理解

看板C_and_CPP作者 (安卓發送)時間7年前 (2018/05/26 09:23), 編輯推噓0(002)
留言2則, 2人參與, 7年前最新討論串1/1
如題 之前在GitHub上看到一段程式碼 作者是用double pointer來配置動態矩陣 程式碼如下: /* n by m array */ cin >> n >> m; int **dp = new int *[n]; for (int i = 0; i < n; i++) { dp[i] = new int[m]; for (int j = 0; j < m; j++) { dp[i][j] = 1; } } 我的理解是 dp是pointer to pointer array to integer array 指向pointer array的第一個位置 dp[n]就和一般一維陣列一樣 只是裡面是存pointer的位置 所以記憶體分配是像下圖 (粗略) _____________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _____________________________________________________________ dp dp[0] dp[1] dp[2]...dp[n] dp[0][0] dp[0][1]...dp[n][m] ^ ^ ^ | | | int** int* int dp[0], dp[1], ..., dp[n]是pointer to integer array 分別也都是指向該array的第一個位置 ex. dp[0] == &dp[0][0], dp[1] == &dp[1][0], ..., dp[n] == &dp[n][0] 想請問大大們我的理解有沒有錯誤 或者有其他比較準確的解釋方式嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.214.123 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1527326638.A.A20.html

05/26 17:29, 7年前 , 1F
沒有錯誤
05/26 17:29, 1F

05/26 19:19, 7年前 , 2F
感謝大大
05/26 19:19, 2F
文章代碼(AID): #1R2IUkeW (C_and_CPP)