作者:
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東開西開用掉的一些空間