[問題] 關於K&R II 的section 6.6的問題

看板C_and_CPP (C/C++)作者 (/欣塞玲/)時間16年前 (2009/06/29 22:58), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
在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
文章代碼(AID): #1AIDQDWy (C_and_CPP)
文章代碼(AID): #1AIDQDWy (C_and_CPP)