Re: [問題] 動態配置記憶體
※ 引述《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)
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章