作者moonjustin (快点放长假吧@@)
看板EE_DSnP
标题Re: [问题] alocArray,freeArray
时间Mon Dec 11 11:30:42 2006
※ 引述《ric2k1 (Ric)》之铭言:
: ※ 引述《EEmuse2 (忘了密码)》之铭言:
: : 应该说 new v.s. new[]都是传入 alloc(t),allocArray(t),但我不太了解
: : alloc(t)是不是说系统自动要求要一个物件大小t的空间,而allocArray(t)
: : 传入的东西又是什麽?是指几个物件??
: 对 function "operator new[] (size_t t)", 系统会自动计算出所需记忆体的 #Bytes
~~~~ ~~~~
请问一下为什麽是系统自动计算呢?
这次作业不就是要全权自己分配记忆体吗?
所以不是要自己算?
: That is, t = sizeof(T) * n + 4, where T is the class to new, and n is the
: size of array (i.e. new T[n])
: : 有点不知道allocArray和freeArray怎样动手...
: 系统在执行完 new[] 之後, 会将 n 存在 allocated memory 的最前面 4 个 Byte (i.e.
~~ ~~~~~~~~~~~~~~~~~
这个n不是要自己存进去吗?
因为不是要自己分配记忆体的用途?
: 大小 = sizeof(size_t)).
: 至於如何看到 n, 此乃本作业的重点之ㄧ, 你可以参考 post #240.
n不是要自己偷存进去前4byte就好?
谢谢^^"
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.218.0.112
1F:推 ric2k1:I will suggest you to play around with newOp.cpp... 12/11 12:06
2F:→ ric2k1:n 是系统自己帮你存的, 而且是在 new[]() 结束之後 12/11 12:06
3F:→ ric2k1:所以即使你在 new []() 存了 n, 系统仍然会再存一次 12/11 12:07
4F:→ ric2k1:这次作业是要你们 "根据系统传给你们的 t, 来自分配记忆体" 12/11 12:08
5F:→ ric2k1:Once again, new [] (t) 里面的 t 也不是你们可以控制的 12/11 12:10