推 seansylin:感謝,一開始想錯了 06/30 16:52
※ 引述《seansylin (/欣塞玲/)》之銘言:
: 在section 6.6 hash table的範例中,其中lookup function內
: struct nlist *np;
: (中略)
: if((np=lookup(name)) == NULL)
: np=(struct nlist *)malloc(sizeof(*np));
: ^^^
: 為啥不是 sizeof(struct nlist)
: 還有sizeof(*np)跟sizeof(np)會是怎樣呢?後者代表配一個pointer所需的memory嗎?
我覺得如果
np改成不同型態的指標的話,這邊就可以不用動
: 此外,下方若干行的
: hashval=hash(name);
: np->next=hashtab[hashval];
: ^^^^^^^^^^^^^^^^^^^^^^^^^^
: 這行完全不懂幹嘛!
: hashtab[hashval]=np;
: ^^^^^^^^^^^^^^^^^^^
: 這行怪怪,因為新install的nlist不一定是直接串在hashtab[]上,有可能串在某個nlist
: 的->next上吧?
: (亦或是我眼花看錯?)
: 請有書的給予指導,謝謝!^ ^
[ ]
[ ]
[hash(name)] - np - (original hashtab[hashval])
[ ]
我想應該是這一段的目的
不過手上沒書,參考看看囉
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.203.6