*tt = &TTABLE[ ((hash_stack[ply]>>16) & (CORE-1)) ];
Вы пытаетесь сохранить указатель на переменную, которая не является указателем.
Вам нужно либо
*tt = TTABLE[ ((hash_stack[ply]>>16) & (CORE-1)) ];
сделать копию одного элемента массива (это не сработает, так как tt
не инициализируется)
или
tt = &TTABLE[ ((hash_stack[ply]>>16) & (CORE-1)) ];
чтобы сделать указатель на массив.
Другой способ написания второй версии -
tt = TTABLE + ((hash_stack[ply]>>16) & (CORE-1));