作者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