Re: [問題] 動態配置記憶體

看板C_and_CPP (C/C++)作者 (老人家)時間16年前 (2009/02/12 17:25), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
※ 引述《PcGrek (PcGrek)》之銘言: : 推薦另一種動態配置的寫法, : 用這種方法配出來的記憶體區塊是連續的, : 釋放記憶體時簡單,也可以用 a[x][y] 這種型式的定址法。 : double** mat = (double**)malloc( h*sizeof(double* )+ : w*h*sizeof(double)); : double* x = (double* )(mat + h); : for(int y = 0; y!=h ; ++y, x+=w ) : mat[y] = x; : free(mat); 解釋一下嗎? P大 double** mat = (double**)malloc( h*sizeof(double* )+ w*h*sizeof(double)); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 產生一組 double**型態 大小 h個(double*) + w*h個(double) 我們不是要 w*h*(double)就好了嗎? 一個double mat[h][w]他的大小 不就只有 h*w*(double) 那h*sizeof(double* ) 不就多配置了? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.88.58 ※ 編輯: NoobImage 來自: 203.64.88.58 (02/12 17:26) ※ 編輯: NoobImage 來自: 203.64.88.58 (02/12 17:26)

02/12 17:27, , 1F
找張紙畫一下圖你就懂了
02/12 17:27, 1F
※ 編輯: NoobImage 來自: 203.64.88.58 (02/12 17:27)

02/12 17:31, , 2F
不會畫
02/12 17:31, 2F
※ 編輯: NoobImage 來自: 203.64.88.58 (02/12 17:36)
文章代碼(AID): #19a-i6Mi (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19a-i6Mi (C_and_CPP)