看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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)
HudsonE:找張紙畫一下圖你就懂了 02/12 17:27
※ 編輯: NoobImage 來自: 203.64.88.58 (02/12 17:27)
NoobImage:不會畫 02/12 17:31
※ 編輯: NoobImage 來自: 203.64.88.58 (02/12 17:36)