作者sobluesk (只要有希望永遠不會結束)
看板EE_DSnP
標題[問題] alloc和allocArr
時間Mon May 4 00:03:34 2009
memMgr.h中
alloc和allocArr兩個functions
除了名字不同
內部呼叫的getMem(t)無法分辨是不是陣列型態
不太懂老師寫的
//Note: no need to record the size of the array ==> system will do
這句話的意思?
感覺上需要在一開始傳入size_t t的地方就給定
一個算好(如果是陣列就先加上最前面記住大小的size_t)的數才可以分配記憶體
不知道是不是
newObjs呼叫new ,new再呼叫alloc
newArrs呼叫new[],new[]再呼叫allocArr
因為alloc和allocArr沒有//TODO
所以上文的size_t要在newObjs和newArrs算好?
若有表達不甚理想
還請大家見諒
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.14.164
1F:推 goodword:應該是 呼叫new[] 系統自己就知道要多一個size_t 05/04 00:08
2F:→ goodword:也就是 new MemTestObj; 就是傳入alloc(14) 05/04 00:13
3F:→ goodword:new MemTestObj[3]; 就是傳入alloc(3*14+16) 05/04 00:13
4F:→ goodword:打錯... 是allocArr(14*3+16) 05/04 00:14
5F:推 goodword:可以多用用ref的debug來測, 比較不會誤解老師的意思 05/04 00:22
6F:推 ric2k1:我的意思是這個 size_t 的參數是 compile 在從 new/new[] 05/04 00:29
7F:→ ric2k1:去呼叫你的 new/new[] functions 就已經幫你算好傳進去了 05/04 00:30
8F:→ ric2k1:所以你不用去管他, 包含在 array 上面那個 size_t 裡存的 05/04 00:30
9F:→ ric2k1:數字 (i.e. array size), 你也不用管他, compile會自己存好 05/04 00:31
10F:→ goodword:我又說錯話了 是 +4 or +8 才對 抱歉誤導大家 05/04 07:25