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