Monday, 5 July 2010

unsigned int と long

ポインタ の hash を計算するのに、long に代入したら値が...

 0xffffffff

に。ポインタの絶対値が大きくなると、long の値の範囲を越えてしまうので、overflow 扱いになって、0xffffffff になってしまうらしいです。

余計なことを〜

heap 上の値だと、そんなに大きくならないので、それだと問題なく動く。

hash だから別に  0xffffffff になっても問題なく動く。遅くなるだけ。こういうのは見つけづらい。

hash は、やっぱり分布を表示して見てみまないとだめだね。

Post a Comment