[問題] alloc和allocArr

看板EE_DSnP作者 (只要有希望永遠不會結束)時間15年前 (2009/05/04 00:03), 編輯推噓3(308)
留言11則, 3人參與, 4年前最新討論串1/4 (看更多)
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

05/04 00:08, , 1F
應該是 呼叫new[] 系統自己就知道要多一個size_t
05/04 00:08, 1F

05/04 00:13, , 2F
也就是 new MemTestObj; 就是傳入alloc(14)
05/04 00:13, 2F

05/04 00:13, , 3F
new MemTestObj[3]; 就是傳入alloc(3*14+16)
05/04 00:13, 3F

05/04 00:14, , 4F
打錯... 是allocArr(14*3+16)
05/04 00:14, 4F

05/04 00:22, , 5F
可以多用用ref的debug來測, 比較不會誤解老師的意思
05/04 00:22, 5F

05/04 00:29, , 6F
我的意思是這個 size_t 的參數是 compile 在從 new/new[]
05/04 00:29, 6F

05/04 00:30, , 7F
去呼叫你的 new/new[] functions 就已經幫你算好傳進去了
05/04 00:30, 7F

05/04 00:30, , 8F
所以你不用去管他, 包含在 array 上面那個 size_t 裡存的
05/04 00:30, 8F

05/04 00:31, , 9F
數字 (i.e. array size), 你也不用管他, compile會自己存好
05/04 00:31, 9F

05/04 07:25, , 10F
我又說錯話了 是 +4 or +8 才對 抱歉誤導大家
05/04 07:25, 10F

07/12 00:15, 4年前 , 11F
打錯... 是all https://moxox.com
07/12 00:15, 11F
文章代碼(AID): #19_S1PKA (EE_DSnP)
文章代碼(AID): #19_S1PKA (EE_DSnP)