why a double memset?
why `&id[0]` same as `id` ?