Re: [问题] 作业三

楼主: vincimrs (green)   2011-11-11 00:33:47
※ 引述《b98902080 (虚数)》之铭言:
: 看了前几届的问题知道slot分空间要用slot[-i]
: 但我看hfpage.h里是直接宣告一个slot_t slot[1];
: 那怎么确定他占用的是data尾的部分
: 可能解决方法:
: 1.不用管,因为程式有标freeSpace,所以就当作他有指到data尾(但会有指标乱指
: 的潜在问题)
: 2.在init时修改位置
: 请问是要怎么做比较好
: 谢谢
hi同学,
没错slot就是用slot[-i] 去抓这样用的,
这样子才能达到在投影片中要求 slot 是从后面写回去的效果。
至于为什么 slot 是占用这个 page 的尾巴?
其实就是一个 struct 里的 variable 怎么宣告,
他在内存里就是怎样的顺序。(一楼说的没错^^)
所以 slot[-xx] 是会把部分的 data 阵列占去的,
而这个作业就是要求你这样写。
另外再讲一下大家觉得很怪的地方:
1. 为什么 slot 宣告只有 (slot[1])?
=> 他其实就是在开阵列,等同 slot_t *slot (囧")
2. 为什么 data 里面是 MAX_SPACE - DPFIXED?
MAX_SPACE是他想要整个structure有多大,然后就减到
DPFIXED东开西开用掉的一些空间
作者: averangeall (洗发精用完了)   2011-11-11 02:10:00
谢谢助教的回答:)
作者: b98902080 (虚数)   2011-11-11 03:25:00
谢谢助教回答
作者: qcl (QC.L)   2011-11-12 23:52:00
谢谢助教回答,顿时豁然开朗!

Links booklink

Contact Us: admin [ a t ] ucptt.com