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

看板C_and_CPP作者 (選擇那刻 才算開始)時間15年前 (2009/06/29 23:09), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《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

06/30 16:52, , 1F
感謝,一開始想錯了
06/30 16:52, 1F
文章代碼(AID): #1AIDaMX_ (C_and_CPP)
文章代碼(AID): #1AIDaMX_ (C_and_CPP)