→ wtchen: 看來精華區該多收些Feis的好文... 06/09 21:09
→ Feis: 我回完才發現 3-3-3 就說一樣的事 @@ 06/09 21:11
→ wtchen: 用malloc宣告跟3-3-3效率會有差嗎? 06/09 22:54
→ Feis: 為什麼你覺得有差? 06/09 23:02
→ wtchen: 如果用gcc compile的話只支援malloc 06/09 23:05
→ wtchen: 我看起來是沒差的 06/09 23:07
→ bibo9901: 你也可以一次malloc出所有需要的記憶體 06/10 01:12
→ bibo9901: 例如想要 int[n][m], 那總共需要 n*m*sizeof(int) 06/10 01:14
→ bibo9901: + n * sizeof(int*) 這麼多空間, 然後把前面 n 個 int* 06/10 01:14
→ bibo9901: 指到正確位址上 06/10 01:14
→ bibo9901: 假設 int **arr 是你要的陣列, char * p = malloc(...) 06/10 01:17
→ bibo9901: 那麼arr[i] = p + n*sizeof(int*) + i*m*sizeof(int) 06/10 01:17
→ bibo9901: 這樣既是你要的連續儲存,又只需要一次 free 06/10 01:18
→ bibo9901: 啊XD 就是你網址裡的第4種方法 06/10 01:20
推 arthur104: 推樓上,pointer用的好,沒煩惱 06/10 01:22
→ bibo9901: 另外 new 和 malloc 最明顯的差異是 new 會自動呼叫 06/10 01:32
→ bibo9901: trivial constructor, 理論上是會比 malloc 來得慢 06/10 01:33
→ LPH66: 這裡是 new 陣列應該沒有差... 06/10 02:04
→ wtchen: 因為之後想玩底層,所以希望能多了解最有效率的方法 06/10 22:01
→ wtchen: 精華區3-3-3用的new不合我需求,所以才想用malloc 06/10 22:01
→ wtchen: 感謝各位解說 06/10 22:02
推 Killercat: 你要快就是用placement new做memory pool 06/12 16:26
→ Killercat: 在C++裡面糾結new或者malloc講真的沒啥意義.... 06/12 16:26
→ BlazarArc: 同意樓上 06/24 23:46