Re: [問題] 關於K&R II 的section 6.6的問題
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):