>>684
>table[0] = 0 → table[0] = NULL;
>table[1] = 1 → table[1] = 0x1番地
どう見ても全てのテーブルを0初期化なんだが?

>for (i = 0; i < M; i++)
> table[i] = 0;

別に、↓でもいいんでね?
memset(table, 0, sizeof(struct item *)*M)