[問題] sizeof(size_t) 之倍數
因為想了一個晚上
雖然有聽老師講過、爬過文
但感覺還是沒有完全地了解
不太敢隨便下手
所以想要請教大家一下
我知道要取sizeof(size_t)之倍數記憶體的原因
是為了做到platform dependent
因為系統在new的時後
會對齊size_t為倍數的位置
但在作業中
我們先自己跟系統要一塊memory
來後再根據new多少再來分配記憶體
但這裡我不是很清楚的是
為何對自己要到的記憶體
不能依照真正object大小來要
而是也要跟系統一樣要sizeof(size_t)為倍數的記憶體大小呢?
舉例說:
一開始可能將0x00000000~0x00000007位置的記憶體分配出去
然後下次再從0x00000008開始開始
原因是因為
就算是我們自己已經要來的MemBlock,
也無法aceess/或是指到非sizeof(size_t)倍數的記憶體?
還是說只是單純要模仿機器每次都切齊sizeof(size_t)倍數的記憶體位置呢?
或是另有其它隱情?
不好意思小的觀念不清
懇請解惑
感激不盡
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.25.106
※ 編輯: vincere 來自: 140.112.25.106 (11/18 14:13)
推
11/18 15:37, , 1F
11/18 15:37, 1F
→
11/18 15:38, , 2F
11/18 15:38, 2F
→
11/18 16:18, , 3F
11/18 16:18, 3F
→
11/18 16:20, , 4F
11/18 16:20, 4F
→
11/18 16:22, , 5F
11/18 16:22, 5F
→
11/18 16:22, , 6F
11/18 16:22, 6F
推
11/18 17:19, , 7F
11/18 17:19, 7F
→
11/18 17:32, , 8F
11/18 17:32, 8F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):