看板 C_and_CPP 關於我們 聯絡資訊
在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嗎? 此外,下方若干行的 hashval=hash(name); np->next=hashtab[hashval]; ^^^^^^^^^^^^^^^^^^^^^^^^^^ 這行完全不懂幹嘛! hashtab[hashval]=np; ^^^^^^^^^^^^^^^^^^^ 這行怪怪,因為新install的nlist不一定是直接串在hashtab[]上,有可能串在某個nlist 的->next上吧? (亦或是我眼花看錯?) 請有書的給予指導,謝謝!^ ^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.196.171