c ++ – how can I fix this error: can not dynamic_cast

I have an arrangement of pets can be dogs or cats and I want to get one in particular, I try this way

const DtPerro * Unperro = dynamic_cast (& pets[j])

const DtGato * Ungato = dynamic_cast (& farts[j])

and then I check with a "if" what kind of pet was in the "j" position of the pet arrangement, but I get this mega error, some suggestions?

error: can not dynamic_cast (pets + ((sizetype) (((unsigned int) j) * 4))) & # 39; (Of type "const class DtMascota **") to type "const class DtGato *" (source is not a pointer to the class)